Таймер/счетчик1 в ШИМ режиме
При установленном ШИМ режиме таймер/счетчик1 и регистры сравнения выхода A и B (OCR1A и OCR1B), образуют сдвоенный 8, 9 или 10-разрядный автономный генератор ШИМ с правильным чередованием фаз, отсутствием ложных выбросов и выходами на выводы PD5(OC1A) и OC1B. Таймер/счетчик1 работает как реверсивный счетчик, считающий от $0000 до TOP (см. таблицу 18), при котором направление счета меняется и отсчет ведется до нуля, после чего цикл повторяется. Когда состояние счетчика совпадет с содержимым 10 младших битов OCR1A или OCR1B, выводы PD5(OC1A)/OC1B устанавливаются или очищаются, в соответствии с установками битов COM1A1/
COM1A0 или COM1B1/COM1B0 в регистре управления таймером/счетчиком1 TCCR1A.
Подробности см. в таблице 19.
Таблица 18. TOP значения таймера и частота ШИМ
Разрешение ШИМ |
TOP значения таймера |
Частота ШИМ |
8-разрядное |
$00FF (255) |
f TC1 /510 |
9-разрядное |
$01FF (511) |
f TC1 /1022 |
10-разрядное |
$03FF (1023) |
f TC1 /2046 |
Таблица 19. Выбор режима сравнения1 в ШИМ режиме
COM1X1 |
COM1X0 |
Выходной сигнал на OCX1 |
0 |
0 |
Не подключен |
0 |
1 |
Не подключен |
1 |
0 |
Очищается по совпадению при счете вверх. Устанавливается по
совпадению при счете вниз (не инвертированный ШИМ) |
1 |
1 |
Очищается по совпадению при счете вниз. Устанавливается по
совпадению при счете вверх (инвертированный ШИМ) |
Примечание: X = A или B.
Отметим, что в ШИМ режиме младшие 10 разрядов OCR1A/OCR1B, при записи, пересылаются в ячейки временного хранения. Они фиксируются по достижении таймером/счетчиком1 значения TOP. Таким способом обеспечивается защита от появления уширенных ШИМ импульсов (ложных выбросов - glitches) при несинхронной записи OCR1A/OCR1B. См. пример на рис. 36.
Рис. 36. Эффект несинхронной фиксации OCR1
При чтении OCR1A или OCR1B, в промежутке времени между записью и фиксацией, будет считано содержимое ячейки временного хранения. Это означает, что более раннее записанное значение всегда будет считываться из OCR1A/B.
Когда OCR1 содержит $0000 или TOP, вывод OC1A/OC1B остается на низком уровне, соответственно установкам COM1A1/COM1A0 или COM1B1/COM1B0. Это отображено в таблице 20.
Таблица 20. Состояния выходов в ШИМ режиме при OCR1X = $0000 или TOP
COM1X1 |
COM1X0 |
OCR1X |
Состояние выводов OC1X |
1 |
0 |
$0000 |
L |
1 |
0 |
TOP |
H |
1 |
1 |
$0000 |
H |
1 |
1 |
TOP |
L |
Примечание: X = A или B.
В ШИМ режиме флаг переполнения таймера1 (TOV1) устанавливается при смене направления счета по достижении значения $0000. Прерывание по переполнению таймера1 работает так же как и в обычном режиме таймера/счетчика, т.е. оно выполняется когда TOV1 установлен и разрешены прерывания по переполнению таймера1 и глобальные прерывания. Это относится и к флагам сравнения выхода таймера1 и прерываниям.
|