разрядный таймер/счетчик 1

Лекция 11

11.1.Таймеры/счетчики

11.2. Предварительные делители частоты таймеров/счетчиков

11.3. 8-разрядный таймер/счетчик 0 (T/C0)

11.4. Регистр управления таймером/счетчиком 0-TCCR0

11.5. 16-разрядный таймер/счетчик 1

Таймеры/счетчики

 

Устройства AT90S4434/8535 оснащены тремя таймерами/счетчиками общего назначения – двумя 8-разрядными и одним 16-разрядным. Таймер/счетчик 2 дополнительно может тактироваться асинхронно от внешнего генератора. Этот генератор оптимизирован под использование кварцевого кристалла на частоту 32.768 кГц, что позволяет использовать таймер/счетчик 2 как часы реального времени (RealTimeClock-RTC).

Таймеры/счетчики 0 и 1 используют общий 10-разрядный предварительный делитель опорной частоты. Таймер/счетчик 2 оснащен своим собственным предварительным делителем. Эти таймеры/счетчики можно использовать как таймеры с встроенной временной базой или как счетчик, переключаемый по состоянию на внешнем выводе.

Предварительные делители частоты таймеров/счетчиков

 

Предварительный делитель таймеров/счетчиков 0 и 1 содержит четыре ступени деления: СК/8, СК/64, СК/256 и СК/1024, где СК – входной тактовый сигнал. В качестве источников тактовых сигналов могут быть использованы сигналы от внешних источников, тактовый сигнал СК и нулевой тактовый сигнал (stop).

 

11.3. 8-разрядный таймер/счетчик 0 (T/C0)

 

Для Т/С0 источником тактирования могут быть избраны CK, масштабированный СК или СК от внешнего вывода. Таймер/счетчик может быть остановлен, как показано в описании регистров управления таймерами/счетчиками TCCR0 (рис. 3.5).

Флаг переполнения Т/С0 находится в регистре флагов прерывания таймеров (TIFR). Установки управляющих сигналов хранятся в регистрах управления таймерами/счетчиками TCCR0. Установка разрешения/запрещения прерываний производится в регистре масок прерываний таймеров/счетчиков TIMSK (Timer/Counter Interrupt Mask Register).

 

Регистр управления таймером/счетчиком 0-TCCR0

 

На рис. 3.5 изображен регистр управления таймером/счетчиком 0. В табл. 3.4 приведены варианты настройки таймера/счетчика 0.

$33(53)

биты 7 6 5 4 3 2 1 0

- - - - - CS02 CS01 CS00

 

Доступ Чт Чт Чт Чт Чт Чт/Зап Чт/Зап Чт/Зап

Нач. состояние 0 0 0 0 0 0 0 0

 

Рис. 3.5. Регистр управления таймером/счетчиком 0

 

Биты 7...3 – зарезервированные биты в 4434/8535 всегда читаются как 0.

Биты 2, 1, 0 – определяют источник тактирования T/C0.

Таблица 3.4 Настройка таймера/счетчика 0

 

Cs02 cs01 cs00 Описание
Стоп
СK
СK/8
СK/64
СK/256
СK/1024
Внешний вход Т0, падающий фронт
Внешний вход Т0, нарастающий фронт

 

Условие СТОП обеспечивает функцию включения/выключения таймера. Режимы деления СК масштабируют непосредственно импульсы тактового генератора. Если используется режим тактирования от внешнего входа, соответствующая установка должна выполняться в соответствующем регистре управления направлением данных (DDRx) (сброс в нуль настраивает пин на ввод).

 

Регистр данных таймера/счетчика 0-TCNT0

 

На рис. 3.6 изображен регистр данных таймера/счетчика 0.

 

$32(52)

биты 7 6 5 4 3 2 1 0

MSB - - - - - - LSB

Доступ Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп

Нач. состояние 0 0 0 0 0 0 0 0

 

 

Рис. 3.6. Регистр данных таймера/счетчика 0

 

Т/С0 реализован как счетчик, считающий вверх, с доступом по чтению и записи. Если в таймер/счетчик записано некоторое значение и выбран источник тактового сигнала, то он продолжит счет с записанного значения с тактовой частотой счетчика.

разрядный таймер/счетчик 1

16-разрядный таймер/счетчик 1 может получать тактовый сигнал от CK, CK после предварительного делителя и от внешнего вывода. В регистрах управления TCCR1A и TCCR1B находятся различные флаги, указывающие на переполнение, совпадение при сравнении и случаи захвата событий. В регистре масок прерываний TIMSK устанавливаются разрешения/запрещения прерываний таймера/счетчика 1. При внешнем тактировании таймера/счетчика 1 внешний сигнал синхронизируется частотой тактового генератора CPU.

Таймер/счетчик 1 поддерживает две функции сравнения выхода, используя регистр сравнения выходов A и B – OCR1A и OCR1B в качестве источников данных, сравниваемых с содержимым таймера/счетчика 1. Функции сравнения выхода включают очистку счетчика по совпадению сравнения и воздействие на выводы сравнения выхода при обоих совпадениях сравнения. Таймер/счетчик 1 может быть использован в качестве 8-, 9- или 10-разрядного широтно-импульсного модулятора. В этом режиме счетчик и регистры OCR1A/OCR1B работают как сдвоенный самостоятельный ШИМ со сцентрированными импульсами, без формирования ложных импульсов.

Функция захвата входа таймера/счетчика 1 обеспечивает захват содержимого таймера/счетчика 1 в регистр захвата входа (ICR1), запускаемый внешним событием на выводе входа захвата (ICP). Реальные установки захвата события определяются регистром управления таймером/счетчиком 1 TCCR1B (Timer/Counter1 Control Register). Кроме того, для переключения входа захвата может быть использован аналоговый компаратор.

Если разрешена функция подавления шума, действительные условия переключения события захвата тестируются четырьмя выборками, прежде чем захват будет активирован. Тестирование сигнала на входном выводе производится с частотой XTAL.