Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

Шаг 6. Осваиваем все возможности микроконтроллера ATtiny231 3 445 записи в него логической единицы). Если требуется только измерение частоты, очистка флага ICF1 не требуется (если используется процедура обработки прерывания). Модуль совпадения Встроенный 16-разрядный компаратор непрерывно сравнивает содер ­ жимое регистра TCNT1 с регистром совпадения (OCRlx). Если содержи ­ мое TCNT равно содержимому OCRlx, компаратор вырабатывает сигнал совпадения. Этот сигнал устанавливает флаг совпадения (OCFlx) в сле ­ дующем цикле работы таймера. Если данный вид прерываний разрешен (OCIElx = 1), то флаг совпа ­ дения генерирует прерывание по совпадению. Флаг OCFlx автоматиче ­ ски сбрасывается, когда начинается выполнение процедуры обработки прерывания. Флаг OCFlx может быть очищен программно путем записи в него логической единицы. Генератор сигналов использует модуль совпадения для формирования выходного сигнала согласно выбранному режиму. Режим работы генера ­ тора зависит: ♦ от состояния битов выбора режима генерации (WGM13:0); ♦ от состояния битов выбора режимов сравнения (СОМ1х1:0). Сигналы ТОР и БОТТОМ используются генератором в граничных режимах его работы (Смотри раздел «Режимы работы 16-разрядного таймера счетчика»). Особенностью модуля сравнения является возможность программно задавать верхнее значение (ТОР) таймера/счетчика. То есть менять его коэффициент пересчета. Кроме коэффициента пересчета, значение ТОР определяет период выходного сигнала. На рис. 6.32 показана блок-схема модуля совпадения. Маленькая буква «п» в названиях регистров и в именах разрядов ука ­ зывает номер таймера (в нашем случае n = 1). Маленькая буква «х» — это название одного из выходов модуля совпадения (А или В). Элементы блок-схемы, которые непосредственно не являются частью модуля совпадения, показаны серым цветом. Регистры OCRlx имеют двойную буферизацию в любом режиме широтно-импульсной модуляции (ШИМ). В режиме Normal и режиме Сброс при совпадении (СТС) отключается двойная буферизация. Двойная буферизация синхронизирует момент обновления регистра OCRlx с моментом достижения таймером верхнего или нижнего преде ­ лов (ТОР и BOTTOM). Синхронизация предотвращает возникновение нечетной длины асимметричных ШИМ-импульсов, обеспечивая, таким образом, качественный выходной сигнал.

RkJQdWJsaXNoZXIy MTExODQxMg==