Объявлено следующее:
#define FCLK 14745600 // ×àñòîòà êîíòðîëëåðà
#define TCLK 68 // ×àñòîòà êîíòðîëëåðà â íñ
....
#define FREGENER 75 // ×àñòîòà ðåãåíåðàöèè ïàííî
#define FSHOWACT 40 // ×àñòîòà èñïîëíåíèÿ êîìàíä
....
OCR1A = FCLK/(1024*FSHOWACT); // FCLK/1024/16.7 Ãö = 862
....
Компилятор генерит следующее
168 // Инициализация таймера 1 (Исполнение активных комманд)
169 // TCCR1A = 0; // Запустить таймер 1 в режиме сравнения
170 OCR1A = FCLK/(1024*FSHOWACT); // FCLK/1024/16.7 Гц = 862
\ 00000100 EA08 LDI R16, 168
\ 00000102 EF1D LDI R17, 253
\ 00000104 93100089 STS 137, R17
\ 00000108 93000088 STS 136, R16
Если вместо 40 для константы FSHOWACT поставить 31 и меньше, то всё класс. Точно также всё правильно если поставить 40.0!
Что я не учёл?