Читайте также:
|
|
Регистр сравнения выхода таймера/счетчика0 - OCR0 - (Timer/Counter0 Output Compare Register)
Биты |
| |||||||||
$31 ($51) |
| OSR0 | ||||||||
Чтение/Запись |
| |||||||||
Начальное состояние |
|
Регистр сравнения выхода таймера/счетчика2 - OCR2 - (Timer/Counter2 Output Compare Register)
Биты |
| |||||||||
$23 ($43) |
| OSR2 | ||||||||
Чтение/Запись |
| |||||||||
Начальное состояние |
|
Регистры сравнения выходов являются 8-разрядными регистрами с возможностью чтения/записи. Выполнение процедуры сравнения определяется регистрами TCCR0 и TCCR2. Совпадение при сравнении произойдет только тогда, когда таймер/счетчик досчитает до значения содержимого OCR. Программная запись одного и того же значения в таймер/счетчик и в регистр сравнения выхода не приведет к формированию совпадения при сравнении.
Совпадение при сравнении приведет к установке флага прерывания по совпадению в течение тактового цикла CPU следующего за совпадением. Необходимо принимать меры предосторожности при работе таймера/счетчика0 в асинхронном режиме, т.е. устанавливать в состояние 1 бит AC0 в регистре ASSR. При записи в регистр OCR0 значение, пересылается в регистр по TCK0 такту, следующему за операцией записи.
Таймеры/счетчики 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.
Дата добавления: 2015-07-18; просмотров: 63 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Таймеры/счетчики | | | Асинхронная работа таймера/счетчика0 |