Не могу разобраться с режимом CTC у ATtiny2313. Используется внешний кварцевый резонатор на 4 MHz. Необходимо настроить срабатывание 16-разрядного таймера каждые полсекунды. Согласно даташиту, формула расчета частоты такова:
Значит формула расчета OCRnA:
Дело в том, что при таком расчете таймер срабатывает в два раза чаще, чем нужно. Вот код инициализации (предделитель равен 64):
Код
TCNT1 = 0;
TCCR1B = (1<<WGM12)|(1<<CS11)|(1<<CS10);
OCR1A = 0x3D08;
TIMSK = (1<<OCIE1A);
Возникают следующие вопросы:
- Зачем нужна двойка в знаменателе? Если ее не учитывать, расчет получается верным.
- Я принимаю, что частота CLK_I/O равна 4 MHz. Чему в действительности равна эта частота?