ТАЙМЕР/СЧЕТЧИК В РЕЖИМЕ ШИМПри выборе режима широтно-импульсной модуляции (ШИМ), таймер/счетчик 1 и регистр совпадения OCR1A формируют 8, 9 или 10-разрядный непрерывный свободный от "дрожания" и правильный по фазе сигнал, выводимый на ножку PB3(OC1). Таймер/счетчик 1 работает как реверсивный счетчик считающий от 0 до конечного значения (см. табл.17.4). При достижении конечного значения счетчик начинает считать в обратную сторону до нуля, после чего рабочий цикл повторяется. Когда значение счетчика совпадает с 8, 9 или 10-ю младшими битами регистра OCR1A, вывод PD1(OC1) устанавливается или сбрасывается в соответствии с установками бит COM1A1 и COM1A0 в регистре TCCR1 (см. табл.17.5).
Табл. 17.4. Конечное значение таймера и частота ШИМ
В режиме ШИМ, при записи в регистр OCR1A, 10 младших бит передаются во временный регистр и переписываются только при достижении таймером/счетчиком конечного значения. При этом устраняется появление несимметричных импульсов (дрожания), которые неизбежны при асинхронной записи OCR1A. Таблица 17.5. Установка режима совпадения при работе ШИМ
Если OCR1A содержит значение $0000 или конечное значение (TOP), вывод OC1 остается в том состоянии, которое определяется установками COM1A1 и COM1A0. Это показано в табл. 17.6. Таблица 17.6. Выход ШИМ для OCR=$0000 или TOP ┌──────┬───────┬───────┬──────────┐ │COM1A1│COM1A0 │OCR1A │вывод OC1 │ ├──────┼───────┼───────┼──────────┤ │1 │0 │$0000 │низкий │ │ │ │ │ │ │1 │0 │TOP │высокий │ ├──────┼───────┼───────┼──────────┤ │1 │1 │$0000 │высокий │ │ │ │ │ │ │1 │1 │TOP │низкий │ └──────┴───────┴───────┴──────────┘
В режиме ШИМ флаг переполнения таймера 1 (TOV1) устанавливается когда счетчик изменяет направление счета в точке $0000. Прерывание по переполнению таймера 1 работает как при нормальном режиме работы таймера/счетчика, т.е. оно выполняется, если установлен флаг TOV1 и разрешены соответствующие прерывания. То же самое касается флага совпадения и прерывания по совпадению.
|