Скрипач, пророк (11.03.2011 18:54, просмотров: 220) ответил koyodza на что вы подразумеваете под "просроченным" прерыванием таймера?
Гонки сигналов. Таймер используется как watchdog.
Получили байт и вошли в обработчик RX-Irq (прерывания запретили).
В это время истек таймер и взведен соответствующий флаг запроса прерывания.
В обрабочике RX-Irq в таймер записали начальное значение, но флаг-то уже взведен!
По выходу из RX-Irq будет вызван обработчик Timer-Irq.
(а, по логике программы, не должен. watchdog-то уже сбросили)
Т.е. только записывать новое значение в таймер не достаточно.
Нужно еще и флаг прерывания принудительно сбрасывать.
Последние несколько недель стенд на прогоне. Ошибок нет.
... но не любой ценой.