ClipArt 0 19 ноября, 2010 Опубликовано 19 ноября, 2010 · Жалоба Не могу разобраться с режимом 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. Чему в действительности равна эта частота? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 20 ноября, 2010 Опубликовано 20 ноября, 2010 · Жалоба Эта формула для частоты , котоая будет генерироваться на выходе pins OCnA OCnB т.е ( например) при первом совпадении установится ноль на выходе порта , при втором высокий уровень . Если Вам не нужен выход частоты -двойка не нужна Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ClipArt 0 20 ноября, 2010 Опубликовано 20 ноября, 2010 · Жалоба Спасибо, теперь все понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться