Таймер/счетчик1 в ШИМ режиме

При установленном ШИМ режиме таймер/счетчик1 и регистры сравнения выхода A и B (OCR1A и OCR1B), образуют сдвоенный 8, 9 или 10-разрядный автономный генератор ШИМ с правильным чередованием фаз, отсутствием ложных выбросов и выходами на выводы PD5(OC1A) и PD4(OC1B). Таймер/счетчик1 работает как реверсивный счетчик, считающий от $0000 до TOP (см. табл. 2.10), при котором направление счета меняется и отсчет ведется до нуля, после чего цикл повторяется. Когда состояние счетчика совпадет с содержимым 10 младших битов OCR1A или OCR1B, выводы PD5(OC1A)/PD4(OC1B) устанавливаются или очищаются, в соответствии с установками битов COM1A1/COM1A0 или COM1B1/COM1B0 в регистре управления таймером/счетчиком1 TCCR1A. Подробности см. в табл. 2.11.

Таблица 2.10. ТОР значения таймера и частота ШИМ

Разрешение ШИМ TOP значение таймера Частота ШИМ
8-разрядное $00FF (255) f TC1 / 510
9-разрядное $01FF (511) f TC1 / 1022
10-разрядное $03FF (1023) f TC1 / 2046

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

COM1X1 COM1X0 Выходной сигнал на OCX1
    Не подключен
    Не подключен
    Очищается по совпадению при счете вверх. Устанавливается по совпадению при счете вниз (не инвертированный ШИМ)
    Очищается по совпадению при счете вниз. Устанавливается по совпадению при счете вверх (инвертированный ШИМ)

Примечание: X = A или В

Отметим, что в ШИМ режиме младшие 10 разрядов OCR1A/OCR1B, при записи, пересылаются в ячейки временного хранения. Они фиксируются по достижении таймером/счетчиком1 значения верхней границы. Таким способом обеспечивается защита от появления уширенных ШИМ импульсов (ложных выбросов - glitches) при несинхронной записи OCR1A/OCR1B. См. пример на рис. 2.1

 
 


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

При чтении OCR1A или OCR1B, в промежутке времени между записью и фиксацией, будет считано содержимое ячейки временного хранения. Это означает, что более раннее записанное значение всегда будет считываться из OCR1A/B. Когда OCR1 содержит $0000 или значение верхней границы, вывод OC1A/OC1B остается на низком или высоком уровне, соответственно установкам COM1A1/COM1A0 или COM1B1/COM1B0. Это отображено в табл. 2.12.

Таблица 2.12.Состояния выходов в ШИМ режиме при OCR1X = $0000 или TOP

COM1X1 COM1X0 OCR1X Состояние выводов OC1X
    $0000 L
    TOP H
    $0000 H
    TOP L

Примечание: X = A

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

8-разрядный таймер/счетчик2 управляется регистром TCCR2.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: