Обработчик:
Код
void Timer0_isr()
{
IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_0_BASE, 0);
flag_isr_tmr = 1;
}
{
IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_0_BASE, 0);
flag_isr_tmr = 1;
}
Ставлю здесь точку остановки , программа в main() больше не возвращается.
Ведь командой
Код
IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_0_BASE, 0);
я должен снять запрос прерывания.Собственно зависание происходит в библиотечной функции alt_irq_handler. Я так понял что не сбрасывается запрос.
Код
........................
active = alt_irq_pending ();
} while (active);
active = alt_irq_pending ();
} while (active);
active всегда не равен нулю. Что ещё глянуть?