Обработчик прерывания не срабатывает |
![]() |
Добавил(а) microsin |
Обработчик прерывания не работает, компилятор выдает предупреждения наподобие: ../timer1.c:21:1: warning: return type defaults to 'int' [enabled by default] ../timer1.c: In function 'ISR': ../timer1.c:21:1: warning: type of '__vector_4' defaults to 'int' [enabled by default] ../timer1.c:39:1: warning: control reaches end of non-void function [-Wreturn-type] Проблема в том, что в код, где определен обработчик прерывания, не подключен заголовочный файл interrupt.h. После его подключения директивой #include предупреждения пропадают, и код начинает работать нормально. #include < avr/io.h>
#include < avr/interrupt.h>
void SetupTC1 (void) { TCCR1 = (1 << CS13)|(1 << CS10); //Разрешить прерывание по переполнению: TIMSK |= (1 << TOIE1); } ISR(TIMER1_OVF_vect)
{
timecnt++;
}
|