воскресенье, 24 марта 2013 г.

Режимы работы таймеров/счетчиков

В микроконтроллере ATmega328 есть три таймера. 2 из низ по 8 бит (T0, T2) и один 16 бит (T1). Для них всех есть одинаковые режимы работы, представленные ниже:
  • Обычный режим работы. Самый распространенный режим, когда таймер просто считает приходящие импульсы и при переполнении счетного регистра устанавливает флаг прерывания по переполнению. При этом счетный регистр сбрасывается в 0 и подсчет импульсов начинается сначала.
  • Режим подсчета импульсов (Сброс при совпадении).  Также называется CTC. В этом режиме при совпадении счетного регистра с одним из регистров сравнения выставляется флаг прерывания по совпадению, счетный регистр обнуляется и подсчет начинается сначала. При этом по совпадению может меняться сигнал на выходе таймера, соответствующего используемому регистру совпадения. 
  • Режим ШИМ. В данном режиме изменяется ширина импульса в зависимости от значения, записанного в регистр совпадения. Для 8-битного таймера, к примеру, если записать в регистр совпадения число 10, состояние логической единицы на выходе совпадения будет 10 тактов из 256, а логический 0 246 тактов из 256 (для неинверсного режима). В инверсном же режиме 10 тактов будет состояние логического 0 и 246 тактов логической единицы. 
  • Режим коррекции фазы ШИМ. В обычном режиме ШИМ мы получаем плавающую фазу выходного сигнала. Для того, чтобы этого избежать, в режиме коррекции фазы ШИМ при достижении максимального значения, счетный регистр таймера/счетчика начинает уменьшатся. Это происходит циклически.
Это все основные режимы работы таймеров/счетчиков. К примеру у таймера/счетчика T0 присутствуют только они. 
Дополнительные режимы работы таймера/счетчика T2:
  • Асинхронный режим работы. В асинхронном режиме работы к микроконтроллеру подключается внешний кварцевый резонатор 32 кГц. Чаще всего этот режим используется для работы таймера/счетчика T2 в качестве часов реального времени.
Дополнительные режимы работы таймера/счетчика T1:
  • Режим коррекции фазы и частоты ШИМ. Отличается от режима коррекции фазы ШИМ лишь моментом обновления регистра сравнения. Регистр сравнения обновляется когда значение счетного регистра достигает минимума.
  • Режим захвата. При поступлении сигнала от аналогового компаратора, а также на вывод ICP1 (14 ножка) значение счетного регистра сохраняется в регистре захвата, устанавливая при этом флаг прерывания по захвату.