Цитата(sKWO @ Apr 4 2014, 07:36)

Я прав, она?
Да. Похоже она.
Цитата(SasaVitebsk @ Apr 4 2014, 06:26)

Идею demiurg_spb, стыдно признаться - не понял.
compare_isr() инкрементирует старшее слово (программное), а из ICR читается младшее слово.
Таким образом получается 32 разряда.
А условие ((icr<0x8000) && (TIFR & (1<<OCF))) проверяет, что переполнение случилось недавно.
Давность можно регулировать, задав вместо 0x8000 другое значение.
На STM32 таких проблем как с AVR быть не должно, т.к. можно конфигурировать NVIC и разруливать приоритеты по собственному желанию.