Таймеры/счетчики 0 и 2 в ШИМ режиме - Timer/Counter 0 and 2 in PWM mode

При установленном ШИМ режиме таймер/счетчик и регистр сравнения выхода (OCR0 или OCR2) формируют 8-разрядный, без ложных выбросов и с правильной фазой ШИМ сигнал с выходом через PB4(OC0/PWM0) или PB7(OC2/PWM2) выводы. Таймер/счетчик работает как реверсивный счетчик, считающий от $00 до $FF, после чего он считает в обратную сторону до нуля и только после этого начинает новый цикл. Когда состояние счетчика совпадает с содержимым регистра сравнения выхода выводы PB4(OC0/PWM0) или PB7(OC2/PWM2) устанавливаются или очищаются, в соответствии с установленными, в регистрах управления таймерами/счетчиками TCCR0 и TCCR2, битами COM01/COM00 или COM21/COM20. См. таблицу 13.

Таблица 13. Выбор режима сравнения в ШИМ режиме

COMn1 COMn0 Эффект, оказываемый на вывод Compare/PWM
Не подсоединен
Не подсоединен
Очистка при совпадении, счет по нарастанию. Установка при совпадении, счет по убыванию (неинвертирующий ШИМ)
Очистка при совпадении, счет по убыванию. Установка при совпадении, счет по нарастанию (инвертирующий ШИМ)

Примечания: n = 0 или 2.

В ШИМ режиме при записи содержимое регистра сравнения выхода пересылается на временное хранение. Содержимое фиксируется при достижении таймером/счетчиком состояния $FF. Такой прием предохраняет от появления ШИМ импульсов увеличенной ширины (ложных выбросов) в случае несинхронной записи OCR0 или OCR2. Пример см. на рис.34.

Рис. 34. Эффект несинхронной фиксации OCR

В промежуток времени между операциями записи и фиксации считывание из OCR0 или OCR2 приведет к считыванию из места временного хранения. Это означает, что чаще всего при чтении значения уставки считывание будет производиться из OCR0/2. При состоянии регистра OCR $00 или $FF выход ШИМ будет удерживаться на низком или высоком уровне, в зависимости от установок COM21/COM20 или COM11/COM10. См. таблицу 14.

Таблица 14. Состояния ШИМ выходов при OCRn = $00 или $FF

COMn1 COMn0 OCRn Выход PWMn
$00 L - низкий уровнье
$FF H - высокий уровень
$00 H - высокий уровень
$FF L - низкий уровень

Примечания: n = 0 или 2.

В ШИМ режиме флаг переполнения таймера (TOV0 или TOV2) устанавливается при смене направления счета при $00. Прерывания по переполнению таймеров 0 и 2 работают так же, как и в нормальном режиме таймеров/счетчиков, т.е. они срабатывают когда TOV0 или TOV2 установлены, и разрешены прерывания по переполнению таймера и глобальному прерыванию. Это относится также к флагам сравнения выхода таймеров и прерываниям.

Частота ШИМ будет соответствовать тактовой частоте таймера деленной на 510.