Таблица 5.9
Режим таймера
Таблица 5.8
Управление предделителем таймера/счетчика Т2
CS22 | CS21 | CS20 | Описание |
Таймер/счетчик остановлен | |||
CK | |||
CK/8 | |||
CK/32 | |||
CK/64 | |||
CK/128 | |||
CK/256 | |||
CK/1024 |
Принцип работы таймера/счетчика Т2 в этом режиме такой же, как и у рассмотренных ранее. По каждому импульсу, поступающему на тактовый вход таймера/счетчика, производится инкремент содержимого счетного регистра TCNT2. При переходе таймера/счетчика из состояния «$FF» в состояние «$00» устанавливается флаг TOV2 регистра TIFR и генерируется запрос на прерывание. Разрешение прерывания осуществляется установкой в «1» разряда TOIE2 регистра TIMSK (флаг общего разрешения прерываний I регистра SREG также должен быть установлен в «1»).
Таймер/счетчик Т2 имеет также функцию сравнения, которая заключается в непрерывном (каждый машинный цикл) сравнении содержимого счетного регистра таймера/счетчика с содержимым регистра сравнения OCR2, расположенного по адресу $23 ($43). При совпадении содержимого этих регистров в следующем машинном цикле устанавливается флаг OCF2 регистра TIFR и генерируется запрос на прерывание. Разрешение прерывания осуществляется установкой в «1» разряда OCIE2 регистра TIMSK. Наряду с установкой флага в регистре TIFR, при равенстве счетного реГистра и регистра сравнения могут выполняться и другие действия:
|
|
- сброс таймера/счетчика;
- изменение состояния вывода ОС2.
Поведение микроконтроллера, т.е. выполнение или невыполнение ука-занных действий, определяется состоянием разрядов СОМ21:СОМ20 и СТС2 регистра управления TCCR2.
Состояние разрядов СОМ21 и СОМ20 определяет поведение вывода ОС2 при совпадении содержимого счетного регистра и регистра сравнения OCR2. Чтобы таймер/счетчик мог управлять этим выводом, он должен быть сконфигурирован как выходной. Поведение вывода указано в табл.5.9.
Управление выводом ОС2 микроконтроллера
COM21 | COM20 | Описание |
Таймер/счетчик T2 отключен от вывода ОС2 | ||
Состояние вывода меняется на противоположное | ||
Вывод сбрасывается в «0» | ||
Вывод устанавливается в «1» |
Сброс таймера/счетчика. Если разряд СТС2 установлен в «1», то при совпадении содержимого счетного регистра и регистра сравнения OCR2 производится сброс таймера/счетчика в состояние «$00».
Примечание. Поскольку сброс выполняется в машинном цикле, следующем за тем, во время которого произошло совпадение, поведение таймера/счетчика зависит от установленного коэффициента деления предделителя таймера (см. табл. 5.8). При коэффициенте деления, равном 1, состояние таймера/счетчика меняется следующим образом:
|
|
...→ С-2 → С-1 → С → 0 ® 1 →...
а при коэффициенте деления, не равном 1:
... → (С-2,...,С-2) → (С-1,...,С 1) → (С, 0,..., 0) →..-,
где С — число, находящееся в регистре сравнения.
В этом режиме таймер/счетчик Т2 представляет собой одинарный 8-разрядный широтно-импульсный модулятор. Для перевода таймера/счетчика Т2 в этот режим необходимо установить в «1» разряд PWM2 регистра TCCR2.
Счетный регистр таймера/счетчика в рассматриваемом режиме функционирует как реверсивный счетчик с модулем счета, равным «$FF» (255). Частота сигнала соответственно равна fTCK2/510, где fТСК2 — частота тактового сигнала. Состояние счетчика изменяется от $00 до $FF, а затем снова до $00, после чего цикл повторяется. При равенстве состояния счетчика и содержимого регистра сравнения состояние вывода ОС2 микроконтроллера изменяется согласно табл. 5.10 (см. также рис.5.13).