WINAVR и интеррупт - не могу понять где траблы у меня.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Игорь 02 августа 2005 г. 00:18

предупреждаю сразу. всё спаяно нормально и работает приём и передача без прерывания.
а вот такая програмка не хочет пахать. в чём траблы не могу понять.
компилиться это дело под ATmega8. Програмка должна по приёму байта инвертировать светодиод.
-----------------------------------
#include
#include
#include

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 |= (1< sei();

while(1)
{
if( uart_flag == 1)
{
uart_flag = 0;
PORTB ^= (1< }
}

return 0;
}
-------------------------------------

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru