Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы МП.New.doc
Скачиваний:
27
Добавлен:
23.11.2019
Размер:
1.08 Mб
Скачать

1.5. Восьмибитные таймеры/счетчики

Восьмибитный таймер Т2 может использоваться для отсчета временных интервалов или как счетчик внешних событий, а также в качестве одноканального генератора 8-битного ШИМ-сигнала. Основное отличие таймера Т0 от таймера Т2 заключается в том, что он может работать в асинхронном режиме (обычно этот режим используется для реализации часов реального времени). В нем также имеется один блок сравнения, позволяющий реализовать 1-канальный генератор ШИМ-сигнала.

Таблица 1.4. Регистры восьмибитных таймеров/счетчиков

Регистр

Назначение

TCCR0

Регистр управления

TCNT0

Счетный регистр

OCR0

Регистр сравнения

TCCR2

Регистр управления

TCNT2

Счетный регистр

OCR2

Регистр сравнения

ASSR

Регистр состояния асинхронного режима

Счетный регистр таймера/счетчика TCNTn входит в состав основного блока модуля — блока реверсивного счетчика. В зависимости от режима работы модуля содержимое счетного регистра сбрасывается, инкрементируется или декрементируется по каждому импульсу тактового сигнала таймера/счетчика clkT0 (clkT2). Независимо от того, присутствует тактовый сигнал или нет, регистр доступен в любой момент времени как для чтения, так и для записи. Однако следует помнить, что любая операция записи в счетный регистр блокирует работу блока сравнения на время одного периода тактового сигнала таймера/счетчика. После подачи напряжения питания в регистре TCNTn находится нулевое значение. При достижении таймером/счетчиком максимального или минимального значения (конкретный вариант зависит от его режима работы) устанавливается флаг TOVn; в регистре флагов TIFR/ETIFR. Разрешение прерывания осуществляется установкой в 1 бита ТOIEn регистра маски TIMSK/ETIMSK. Разумеется, флаг I регистра SREG также должен быть установлен в 1.

Регистры сравнения OCRn входят в состав блоков сравнения модуля. Во время работы таймера/счетчика производится непрерывное (в каждом такте) сравнение этих регистров с регистром TCNTn. В случае равенства содержимого этих регистров в следующем такте устанавливается флаг ОСn в соответствующем регистре флагов и генерируется прерывание (если оно разрешено). Кроме того, при наступлении этого события может изменяться состояние вывода ОСn микроконтроллера. Чтобы таймер/счетчик мог управлять состоянием этих выводов, они должны быть сконфигурированы как выходы (соответствующий бит регистра DDRx должен быть установлен в 1). Любая операция записи в счетный регистр блокирует формирование сигнала о совпадении, если оно произойдет в следующем такте.

Регистры ТССRn предназначены для управления модулем таймера/счетчика. Форматы этих регистров приведены на Рис. 1.4, а описание их битов — соответственно в Табл. 1.5.

Рис. 1.4. Формат регистров TCCR0 (а) и TCCR2 (б)

Таблица 1.5. Биты регистра TCCR0 (TCCR2)

Бит

Название

Описание

7

FOCn

Принудительное изменение состояния вывода OCn (режимы Normal и СТС). При записи лог. 1 в этот бит состояние вывода ОСn изменяется в соответствии с установками битов СОМn1 :СОМnО. Прерывание при этом не генерируется и сброс таймера (в режиме СТС) не производится. В режимах Fast PWM и Phase Correct PWM этот бит должен быть сброшен в 0. При чтении бита всегда возвращается 0.

6, 3

WGMn1

WGMn0

Режим работы таймера/счетчика. Эти биты определяют режим работы таймера/счетчика в соответствии с Табл. 1.6.

5, 4

COMn1

COMn0

Режим работы блока сравнения. Эти биты определяют поведение вывода ОСn при наступлении события «Совпадение». Влияние содержимого этих битов на состояние вывода зависит от режима работы таймера/счетчика

2..0

CSn2..CSn0

Управление тактовым сигналом. Эти биты определяют источник тактового сигнала таймера/счетчика Действие этих битов зависит от исполнения таймера/счетчика и будет описано ниже

Таблица 1.6. Режимы работы таймера/счетчика

Номер режима

WGMn1

WGMn2

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

0

0

0

Normal

1

0

1

Phase Correct PWM

2

1

0

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

3

1

1

Fast PWM