Я сейсат занимаюсь изучением таймеров в ATmega8.
Неодходимо, что бы прерывание происходило точно 1 раз в секунду.
Конфигурирую таумер:
TCCR1B = _BV(CS12) | _BV(WGM12); // Делитель 8 и Режим сравнения.
Записываю расчетное сравниваемое значение:
OCR1A=31250; // 8000000/256
Ну и включаем прерывания:
TIMSK |= _BV (OCIE1A);
sei ();
Таким образом теоретически прерывание должно вызываться примерно раз в секунду. Но оно вызывается один раз в 8 секунд (примерно).
Я попробывал поменять кварц на 16 МГц без изменений в программе - думал, что процесс ускорится в два раза - а не фига - как было, так и осталось!!!
Может не корректно работает кварц, или МК им не пользуется?