|
предупреждаю сразу. всё спаяно нормально и работает приём и передача без прерывания.
а вот такая програмка не хочет пахать. в чём траблы не могу понять.
компилиться это дело под ATmega8. Програмка должна по приёму байта инвертировать светодиод.
-----------------------------------
вмето треуг. скобок, поставил фигурные в инклудах.
#include {avr/io.h}
#include {avr/signal.h}
#include {avr/interrupt.h}
unsigned char uart_flag;
unsigned char tmp;
INTERRUPT( SIG_UART_RECV )
{
tmp = UDR;
uart_flag = 1;
}
int main(void)
{
uart_flag = 0;
tmp = 0;
// init UART
UBRRL = 51; /* 9600 Bd at 8MHz */
UCSRB |= _BV(RXEN)|_BV(RXCIE);
// init LED
DDRB |= _BV(PB1); // LED
sei();
while(1)
{
if( uart_flag == 1)
{
uart_flag = 0;
PORTB ^= _BV(PB1); // inverse LED
}
}
return 0;
}
-------------------------------------
E-mail: info@telesys.ru