#include #include #define portio PIND #define portiow PORTD #define rxled PD7 #define rele PD6 #define btnsw PD5 #define triac PD4 #define MAX_BUFFSIZE 3 #define TRUE 1 #define FALSE 0 unsigned char receiveChar(void ) { unsigned char ch = UDR; return ch; } void sendChar(char data) { while( !(UCSRA&(1<>8); UBRRL = (unsigned char) ubrr; sei(); // Enable interrupts } unsigned char usart1[MAX_BUFFSIZE]; unsigned int rx_count = 0; unsigned char GotMessage = FALSE; short int ovf0cnt = 0; //value for timer0 cycle short int int0cnt = 0; volatile int timer = 0; volatile short int timer_flag = 0; short int i = 0; //value for pwm storing volatile short int btnsw_right = 0; int count = 0; int main (void) { TIMSK |= (1<= (usart1[1]*100)) && (timer_flag)) { if(usart1[0] == 0x03) portiow |= (1 << rele); else if(usart1[0] == 0x04) portiow &= ~(1 << rele); timer = 0; timer_flag = 0; } } ISR(USART_RXC_vect) { //ISR_RX_Handler(){ portiow ^= (1 << rxled); if(rx_count < MAX_BUFFSIZE && !GotMessage) { usart1[rx_count++] = receiveChar(); if(rx_count == MAX_BUFFSIZE) { GotMessage = TRUE; } } }