Как работает таймер-счётчик

Таймеры-счётчики 0 и 1 приводятся в действие от системного тактового генератора, работающего на частоте 16 МГц, либо от одной из двух внешних источников тактового сигнала, которые синхронизировано с системной тактовой частотой по переднему фронту импульсов. Внешний сигнал подаётся на выводы T0 или T1 (выводы Digital с номерами 4 и 5 соответственно).

Таймер-счётчик 2 приводится в действие только от системного тактового генератора.

Частоту от системного генератора можно уменьшить с помощью предделителя в 8, 64, 256 или 1024 раза для таймеров 0 и 1, а для таймера 2 - ещё и в 8 или 32 раза дополнительно.

Таймеры 0 и 1 используют один модуль предделителя частоты, а таймер 2 оснащён своим модулем собственным предделителем. При этом таймеры 0 и 1 могут быть настроены на разные значения коэффициента предделителя.

Вместо системного тактового генератора таймеры 0 и 1 могут приводится в действие от сигнала, подаваемого на выводы T0 (таймер 0), либо T1 (таймер 1). Счёт вестись как по переднему, так и по заднему фронту импульсов.

Таймеры-счётчики могут использоваться для генерации сигналов на выводах OCnx.

Примечание: n в названиях регистров и флагов - это номер таймера-счётчика, а x - это A или B. Например, TCNT0, OCR0A, OCF0A или TCNT2, OCR2B, OCF2В и т.п.

Для того, чтобы с помощью таймера генерировать сигналы на выводах OCnx, нужно установить биты WGM таймера в соответствующие значения. Чтобы эти сигналы выводились как сигналы на выводе микроконтроллера, нужно так же, чтобы этот вывод (пин) был в режиме вывода (OUTPUT).

Таймер может работать в одном из следующих режимов:

  • Нормальный режим.
  • CTC - режим очистки таймера при совпадении (Clear Timer on Compare Match).
  • Fast PWM - режим быстрого ШИМ (широтно-импульсного модулятора).
  • Phase Correct PWM - режим ШИМ с коррекцией фазы. Этот режим не доступен для выводов OC0B и OC1B.
  • Phase and Frequency Correct PWM - режим ШИМ с коррекцией фазы и частоты. Это режим доступен только для вывода OC1A.