Восьмибитные таймеры. Режимы работы таймеров Т0 и Т2

Страницы работы

Фрагмент текста работы

Таймеры.

Atmega 128 имеет два 8-битных таймера/счетчика Т0 и Т2 и два 16-битных таймера/счетчика Т1 и Т3.

Восьмибитные таймеры T0 и T2.

В состав таймер/счетчиков входят три регистра:

регистр управления – ТССRn;

счетный регистр – TCNTn;

регистр сравнения – OCRn, где n=0,2 – номер таймера.

Таймер Т0 может использоваться как часы реального времени (асинхронный режим работы) с тактированием от дополнительного внешнего кварцевого резонатора. Поэтому, в него добавляем регистр ASSR – управление асинхронным режимом.

Регистр TCCR0 (TCCR2) предназначен для управления модулем таймера счетчика.

Формат:

7                                                                                                             0

FOCn

WGMn0

COMn1

COMn0

WGMn1

CSn2

CSn1

CSn0

TCCRn

FOCn – принудительное изменение состояния вывода OСn (режимы Normal и CTC). При FOCn=1 состояние вывода ОСn изменяется в соответствии с установками разрядов COMn1 и COMn0. В режимах Fast PWM и Phase Correct PWM этот разряд должен быть сброшен в ноль.

WGMn1 и WGMn0 – режимы работы таймера/счетчика:

Номер режима

WGMn1

WGMn0

Режим работы

0

0

0

Normal

1

0

1

Phase Correct PWM

2

1

0

CTC (сброс при совпадении)

3

1

1

Fast PWM

COMn1 и COMn0 – режим работы блока сравнения. Определяют поведение вывода Ocn при наступлении события «Совпадение». Влияние содержимого этих разрядов на поведение вывода зависит от режима работы таймера.

CSn2 .. CSn0 – управление тактовым сигналом.

Тактовый сигнал контроллера поступает на вход таймера через предделитель. Биты CSn2 .. CSn0 определяют коэффициент деления:

CSn2

CSn1

CSn0

Т2

Т0

Синхр. реж.

(ASn=0)

Асинхр. реж.

(Asn=1)

0

0

0

0

0

1

таймер остановлен

1

останов.

останов.

0

0

1

1

0

1

8

64

8

32

8

32

1

1

0

0

0

1

256

1024

64

128

64

128

1

1

1

1

0

1

вывод Tn, счет по заднему фронту

вывод Tn, счет по переднему фронту

256

1024

256

1024

Регистр TCNTn – считает количество импульсов поступивших на вход таймера. При включений, регистр содержит 00 (Н). При достижении значения FF (Н), регистр сбрасывается в ноль, устанавливая флаг прерывания TOV0 (TOV2) регистра TIFR. Разрешение прерывания осуществляется установкой в 1 разряда TOIE0 (TOIE2) регистра TIMSK (флаг I=1 в регистре SREG).

Регистры сравнения OCR0 (OCR2). Во время работы таймера производится сравнение этого регистра с регистром TCNTn. Если содержимое регистров равно, устанавливается флаг OCF0 (OCF2) регистра TIFR и генерируется прерывание. Кроме того, при наступлении этого события может изменит состояния выводов ОС0 (ОС2), если это изменение задано битами COMn1 и COMn0 регистра TCCRn.

Режимы работы таймеров Т0 и Т2.

1. Режим Normal.

По каждому импульсу тактового сигнала происходит инкремент счетного регистра TCNTn. При переходе через значение FF(H) возникает переполнение, и счет продолжается со значения 00 (Н). В том же такте, устанавливается в 1 флаг переполнения TOVn.

При равенстве счетного регистра TCNTn и регистра сравнения OCRn устанавливается флаг прерывания OCFn и, если разряд OCIFn регистра TIMSK установлен в 1, генерируется прерывание. Наряду с установкой флага прерывания, изменяется состояние вывода ОС0 (ОС2) микроконтроллера.

Управление выводом ОС0 (ОС2) в режиме Normal и CTC.

COMn1

COMn0

Описание

0

0

Таймер Tn отключен от выхода OСn

0

1

Состояние вывода инвертируется

1

0

Вывод сбрасывается в 0

1

1

Вывод устанавливается в 1

2. Режим СТС (сброс при совпадении).

В этом режиме счетный регистр функционирует как суммирующий счетчик. При достижении значения, хранящегося в регистре сравнения OCRn, счет продолжается со значения 00 (Н). При обнулении счетчика, устанавливается флаг прерывания TOV0 (TOV2) регистра TIFR.

При достижении счетчиком максимального значения, устанавливается флаг OCF0 (OCF2) регистра TIFR. Одновременно с установкой флага может изменяться состояние вывода ОС0 (ОС2) микроконтроллера. Поведение вывода определяется разрядами СOMn1 и COMn0 в соответствии с приведенной выше таблицей.

Режим может использоваться для генерации заданной частоты. Для этого в разрядах СOMn1, COMn0 записывают значения 01.

Частота выходного сигнала определяется выражением:

, где N – коэффициент деления предделителя,

ОСRn – число в регистре сравнения.

3. Режим Fast PWM (быстрый ШИМ)

Счетный регистр функционирует в этом режиме как суммирующий счетчик, значения которого циклически изменяются от 00(Н) до FF(H). Также как и в предыдущих двух случаях, генерируются прерывания по равенству и переполнению счетчика.

Частота генерируемого сигнала:

, где N – коэффициент деления предделителя.

Особенностью режима является то, что запись нового значения в регистр OCR0 (OCR2) производится только в момент достижения счетчиком максимального значения FF(Н), для исключения помех на выводе Ocn ШИМ.

Поведение вывода ОС0 (ОС2) определяется битами COMn1, COMn0 регистра

Похожие материалы

Информация о работе