Таймеры/счетчики 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 |
0 |
0 |
Не подсоединен |
0 |
1 |
Не подсоединен |
1 |
0 |
Очистка при совпадении, счет по нарастанию. Установка при совпадении,
счет по убыванию (неинвертирующий ШИМ) |
1 |
1 |
Очистка при совпадении, счет по убыванию. Установка при совпадении, счет по нарастанию (инвертирующий ШИМ) |
Примечания: 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 |
1 |
0 |
$00 |
L - низкий уровнье |
1 |
0 |
$FF |
H - высокий уровень |
1 |
1 |
$00 |
H - высокий уровень |
1 |
1 |
$FF |
L - низкий уровень |
Примечания: n = 0 или 2.
В ШИМ режиме флаг переполнения таймера (TOV0 или TOV2) устанавливается при смене направления счета при $00. Прерывания по переполнению таймеров 0 и 2 работают так же, как и в нормальном режиме таймеров/счетчиков, т.е. они срабатывают когда TOV0 или TOV2 установлены, и разрешены прерывания по переполнению таймера и глобальному прерыванию. Это относится также к флагам сравнения выхода таймеров и прерываниям.
Частота ШИМ будет соответствовать тактовой частоте таймера деленной на 510.
|