Во-первых, поскольку answer изменяется в прерывании, а обрабатывается, скорее всего, в основном цикле, он должен быть volatile. Во-вторых, вы не показали что у вас в TIMER1_COMPA_vect. Может там какая-то дикая задержка и TIMER1_COMPB_vect ждет, пока закончится тот обработчик. В третьих, запрещать прерывания не нужно - они запрещаются автоматически при входе в обработчик прерывания.
Другого криминала пока не видно.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|