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

2. Шестнадцатибитные таймеры/счетчики

В модели ATmega128 имеется два 16-битных таймера/счетчика — Т1 и ТЗ. Как и 8-битные таймеры/счетчики Т0 и Т2, они могут использоваться для формирования временных интервалов, для подсчета числа внешних событий, формирования сигналов и генерации сигналов с ШИМ. В дополнение к этому 16-битные таймеры/счетчики могут по внешнему сигналу сохранять свое текущее состояние в отдельном регистре ввода/вывода. 16-битные таймеры/счетчики имеют по три блока сравнения.

В состав каждого таймера/счетчика входят следующие регистры ввода/вывода:

• 16-битный счетный регистр TCNTn;

• 16-битный регистр захвата ICRn;

• три 16-битных регистра сравнения OCRnA, OCRnB, OCRnC;

• три 8-битных регистра управления TCCRnA, ТССRnВ, TCCRnC.

Каждый из 16-битных регистров физически размещается в двух регистрах ввода/вывода, названия которых получаются добавлением к названию регистра буквы «Н» (старший байт) и «L» (младший байт). Счетный регистр таймера/счетчика T1 TCNT1, например, размещается в регистрах TCNT1H:TCNT1L. Таймеры/счетчики Т1 и ТЗ могут генерировать прерывание при наступлении следующих событий:

• переполнение счетного регистра;

• равенство счетного регистра и регистра сравнения (по одному прерыванию на каждый блок сравнения);

• сохранение счетного регистра в регистре захвата.

Флаги всех прерываний 16-битных таймеров/счетчиков находятся в регистрах флагов TIFR/ETIFR, а разрешение/запрещение этих прерываний осуществляется установкой/сбросом соответствующих флагов регистров TIMSK/ETIMSK.

Счетный регистр таймера/счетчика TCNTn входит в состав основного блока модуля — блока реверсивного счетчика. В зависимости от режима работы модуля содержимое счетного регистра сбрасывается, инкрементируется или декрементируется по каждому импульсу тактового сигнала таймера/счетчика clkTn. Регистр доступен в любой момент времени как для чтения, так и для записи. После подачи напряжения питания в регистре TCNTn находится нулевое значение. При некоторых изменениях состояния таймера/счетчика, определяемых режимом его работы, устанавливается бит ТОVn в соответствующем регистре флагов. Разрешение прерывания осуществляется установкой в 1 бита ТOIЕn соответствующего регистра маски.

Регистры сравнения OCRnA/OCRnB/OCRnC входят в состав блоков сравнения. Во время работы таймера/счетчика производится непрерывное (в каждом такте) сравнение этих регистров с регистром TCNTn. В случае равенства содержимого регистра сравнения и счетного регистра в следующем такте устанавливается флаг OCFnA/OCFnB/OCFnC в соответствующем регистре флагов и генерируется прерывание (если оно разрешено). Также при наступлении этого события может изменяться состояние вывода ОСnА/ОСnВ/ОСnС микроконтроллера. Чтобы таймер/счетчик мог управлять состоянием какого-либо из этих выводов, он должен быть сконфигурирован как выходной (соответствующий бит регистра DDRx должен быть установлен в 1).

Регистр захвата ICRn входит в состав блока захвата, назначение которого — сохранение в определенный момент времени состояния таймера/счетчика в регистре захвата. Это действие может производиться либо по активному фронту сигнала на выводе IСРn микроконтроллера, либо (для таймера/счетчика Т1) по сигналу от аналогового компаратора. Одновременно с записью в регистр захвата устанавливается флаг ICFn соответствующего регистра флагов и генерируется запрос на прерывание. Разрешение прерывания осуществляется установкой в 1 бита TICIEn регистра маски.

Для управления таймером/счетчиком используются три регистра управления: TCCRnA, TCCRnB, TCCRnB. Формат этих регистров приведен на рис. 2.1…2.3, а описание их битов — в Табл. 2.1…2.3.

а)

б)

Рис. 2.1. Формат регистров TCCR1A (a), TCCR3A (б)

Таблица 2.1. Биты регистров TCCRnA

Название

Описание

СОМnА1:СОМnА0

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

СОМnВ1:СОМnВ0

СОМnС1:СОМnС0

WGMnl:WGMn0

Режим работы таймера/счетчика. Совместно с битами WGMn3:WGMn2 регистра ТССRnВ определяют режим работы таймера/счетчика Тn (см. Табл. 7.25)

FOCnA

Принудительное изменение состояния вывода ОСnх. При записи в бит FOCnx лог. 1 состояние вывода ОСnх изменяется в соответствии с установками битов СОМn1х:СОМn0x регистра TCCR/jA. Прерывание при этом не генерируется и сброс таймера (в режиме СТС) не производится. Эта функция доступна только в тех режимах, которые не используются для генерации сигнала с ШИМ. При чтении бита всегда возвращается 0

FOCnB

Примечание, n = 1,3; х = А, В или С.

а)

б)

Рис. 2.2. Формат регистров TCCR1B (a), TCCR3B (б).

Таблица 2.2. Биты регистров TCCRnB

Бит

Название

Описание

7

ICNCn

Управление схемой подавления помех блока захвата. Если бит сброшен в 0, схема подавления помех выключена (захват производится по первому активному фронту). Если бит установлен в 1, схема подавления помех включена и захват осуществляется только в случае четырех одинаковых выборок, соответствующих активному фронту сигнала

6

ICESn

Выбор активного фронта сигнала захвата. Если бит \CESn сброшен в 0, сохранение счетного регистра в регистре захвата осуществляется по спадающему фронту сигнала. Если бит установлен в 1, то сохранение счетного регистра в регистре захвата осуществляется по нарастающему фронту сигнала. Одновременно с сохранением счетного регистра устанавливается также флаг прерывания ICF/i регистра флагов

5

-

Не используется, читается как 0

4,3

WGMn3:WGMn2

Режим работы таймера/счетчика. Совместно с битами WG Мn1:WGМnО регистра TCCRnA определяют режим работы таймера/счетчика In (Табл. 7.25)

2-0

CSn2...CSn0

Управление тактовым сигналом. Эти биты определяют источник тактового сигнала микроконтроллера (см. подраздел 7.6.2)

а)

б)

Рис. 2.3. Формат регистров TCCR1C (а), TCCR3C (б)

Таблица 2.3. Биты регистров TCCRnС

Бит

Название

Описание

7

FOCnA

Принудительное изменение состояния вывода ОСnх. При записи в бит ОСnх1 лог. 1 состояние вывода ОСnх изменяется в соответствии с установками битов СОМn1х СОМn0х регистра TCCRnA Прерывание при этом не генерируется и сброс таймера (в режиме СТС) не производится. Эта функция доступна только в тех режимах, которые не используются для генерации сигнала с ШИМ При чтении бита всегда возвращается 0

6

FOCnB

5

FOCnC

4..0

-

Не используются, читаются как 0

Примечание, п = 1, 3, х = А, В или С