Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
Шаг 6. Осваиваем все возможности микроконтроллера ATtiny231 3 417 Центральный процессор может обращаться к значению регистра TCNT0 независимо от того, присутствует ли сигнал clk^ или нет. Команда записи, поступающая от центрального процессора, имеет приоритет над всеми другими операциями (очистки счетчика или операциями счета). Режимы работы таймера определяются установкой битов WGM01 и WGM00 регистра TCCR0A и битом WGM02 регистра TCCR0B. Есть тесная связь между выбранным режимом работы счетчика и частотой сигнала на выходе ОСОА. Подробнее это описано в разделе «Режимы работы». Флаг переполнения таймера/счетчика (TOVO) устанавливается в соот ветствии с режимом работы, выбранным при помощи битов WGM01:0. Флаг TOVO может использоваться для генерации прерываний централь ного процессора. Модуль совпадения Основа модуля — восьмиразрядный компаратор, который непре рывно сравнивает содержимое регистра TCNT0 с содержимым каж дого из двух регистров совпадения (OCROA или OCROB). Каждый раз, когда содержимое TCNT0 оказывается равным содержимому OCROA или OCROB, компаратор вырабатывает сигнал совпадения. Этот сигнал устанавливает соответствующий флаг совпадения (OCFOA или OCFOB) в следующем тактовом цикле. Если соответствующее прерывание разрешено, установка флага совпа дения вызывает прерывание. Флаг совпадения автоматически сбрасыва ется при запуске процедуры обработки прерывания. Флаг также может быть очищен программно путем записи в него логической единицы. В режиме генератора частот сигнал совпадения используется для гене рации выводного сигнала в соответствии с выбранным режимом работы, который определяется битами WGM02:0, а также битами выбора режима сравнения (СОМ0х1:0). Сигналы max и bottom используются генератором частот в некоторых случаях для получения критических значений в отдель ных режимах работы (смотри раздел «Режимы работы»). На рис. 6.25 показана блок-схема модуля совпадения. На рисунке буква х — это услов ное обозначение. Для разных модулей совпадения х равно либо А либо В. Регистры OCROx имеют двойную буферизацию в любом режиме широтно-импульсной модуляции (ШИМ). В режиме Normal и режиме СТС (Сброс при совпадении) двойная буферизация отключается. Двойная буфе ризация синхронизирует момент обновления регистра OCROx с моментом достижения таймером верхнего или нижнего пределов. Синхронизация предотвращает возникновение асимметричных ШИМ-импульсов, то есть импульсов, длина которых равна нечетному количеству тактов. Таким образом обеспечивается высокое качество сигналов ШИМ.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==