потому что не работает... зарплату заплатите этому УСАРТу у него вообще забастовка...Почему оно не работает?
да оставьте вы SIGNAL, а вот нули убрали это хорошо... это достойноИсправил на INTERRUPT(SIG_UART_TRANS) и INTERRUPT(SIG_UART_RECV)
Код: Выделить всё
void USART_Init(unsigned int baud) //Инициализация УСАРТ
{
UCSRC = 0;
uint16_t baud1;
baud1 = (F_CPU/16/baud - 1);
UBRRH = (unsigned char)(baud1>>8);
UBRRL = (unsigned char)baud1;
UCSRB = (1<<RXEN)|(1<<RXCIE); //разрешить приём и прерывание
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0); //8 байт, 2 стоп бита
}ах да вот что в протеусе частоту МК постаьте, которая F_CPU
з.ы. потом ещё одно если вы хотите установить бит то пользуйтесь либо _BV(bit); либо (1 << bit); читаемость улучшится в 10 раз...


