ТАЙМЕР;СЧЕТЧИК Т1 МИКРОКОНТРОЛЛЕРОВ АТх8515

February 24, 2011 by admin Комментировать »

Таймер;счетчик Т1 (16-разрядный) имеет гораздо больше функций, чем таймер;счетчик ТО. Прежде всего, как и таймер;счетчик ТО, он может использоваться для формирования временных интервалов или для подсчета числа внешних событий по входу Т1 (линия порта FBI). Во-вторых, таймер;счетчик Т1 может по внешнему сигналу сохранять свое текущее состояние в отдельном регистре ввода;вывода. В-третьих, он может выполнять определенные действия при равенстве содержимого счетного регистра и заданного значения. И, наконец, он может работать как широтно- импульсный модулятор (ШИМ). Следует иметь в виду, что генерация сигнала ШИМа вынесена в отдельный режим работы таймера;счетчика, в котором недоступны остальные функции (кроме генерации прерываний). В дальнейшем режим генерации сигнала ШИМа будем называть режимом ШИМа, а режим, в котором доступны остальные функции таймера;счетчика, – режимом таймера.

Структурная схема таймера;счетчика Т1 приведена на рис. 4.2. В состав таймера;счетчика входят базовый 16-разрядный счетчик TCNT1, три 16-разрядных регистра (регистр захвата ICR 1 и два

Рис. 4.2. Структурная схема таймера;счетчика Т1

регистра сравнения 0CR1A и 0CR1B), два 16-разрядных компаратора (схемы сравнения), два 8-разрядных управляющих регистра TCCR1А и TCCR1B, а также блок управления таймером.

Все флаги состояния таймера;счетчика (переполнения, совпадения и захвата) находятся в регистре флагов прерываний от таймеров TIFR, а разрешение (запрещение) прерываний от таймера

осуществляется установкой (сбросом) соответствующих разрядов регистра маски TIMSK.

Базовый 16-разрядный счетчик TCNT1 реализован как суммирующий (в режиме ШИМа – как суммирующий-вычитающий) счетчик и доступен в любой момент времени как для чтения, так и для записи. При записи в счетчик TCNT1 во время работы таймера счет будет продолжен по следующему за операцией записи импульсу тактового сигнала таймера;счетчика. После подачи напряжения питания счетчик TCNT1 принимает нулевое состояние.

Физически счетчик TCNT1 размещен в двух регистрах TCNT1H:TCNT1L. Чтобы при обращении процессорного устройства микроконтроллера к этим регистрам процесс записи (чтения) обоих байтов содержимого таймера;счетчика происходил одновременно, обращение производится с использованием специального 8-разрядного регистра TEMP. Этот регистр используется только процессором и программно недоступен.

Собственно запись и чтение регистра TCNT1 происходят следующим образом:

1)   при записи старшего байта значения в регистр TCNT1H он помещается в регистр TEMP. Далее при записи младшего байта в регистр TCNT1L он объединяется с содержимым регистра TEMP, и оба байта записываются в регистр TCNT1 одновременно. Из сказанного следует, что для выполнения полного цикла записи в 16-разрядный счетчик первым должен загружаться старший байт (регистр TCNT1H);

2)   при чтении регистра TCNT1L (младший байт) содержимое регистра TCNT1H пересылается в регистр TEMP. При последующем чтении регистра TCNT1H возвращается значение, сохраненное в регистре TEMP. Следовательно, для выполнения полной операции чтения 16-разрядного счетчика первым должен считы- ваться младший байт (регистр TCNT1L).

Подобным образом с использованием регистра TEMP осуществляется обращение к остальным 16-разрядным регистрам: 0CR1A, 0CR1B и ICR1. Прерывания на время обращения к любому из этих регистров должны быть запрещены.

Управление таймером;счетчиком Т1 осуществляется с помощью двух 8-разрядных регистров управления: TCCR1A и TCCR1B. Формат регистров приведен в табл. 4.4. Значение отдельных разрядов этих регистров будет описано далее. Неиспользуемые разряды регистров доступны только для чтения и содержат 0.

Таблица 4.4. Формат управляющих регистров TCCR1A, TCCR1B

По отношению к тактовому сигналу таймер;счетчик Т1 может работать в двух режимах, аналогично таймеру ТО. Выбор источника тактового сигнала, а также запуск и останов таймера;счетчика осуществляются с помощью разрядов CS12…CS10 регистра управления таймером TCCR1B. Соответствие между состоянием этих разрядов и режимом работы таймера;счетчика приведено в табл. 4.5.

Таблица 4.5. Выбор источника тактового сигнала для таймера;счетчика Т1

Режим таймера

Принцип работы таймера;счетчика Т1 в режиме таймера такой же, как и таймера;счетчика ТО. По каждому импульсу, поступающему на тактовый вход таймера;счетчика, производится инкремент содержимого счетчика TCNT1. При переходе таймера;счетчика из состояния $FFFF в состояние $0000 устанавливается флаг ТОVI регистра TIFR и генерируется запрос на прерывание. Разрешение прерывания осуществляется установкой в 1 разряда T0IE1 (бит 7) регистра маски TIMSK (разумеется, флаг общего разрешения прерываний I регистра SREG также должен быть установлен в 1).

Кроме основных функций – подсчет числа импульсов тактового сигнала микроконтроллера и числа внешних событий – в режиме таймера Т1 доступны и дополнительные.

Функция захвата (capture)

Данная функция заключается в сохранении в определенный момент времени состояния таймера;счетчика TCNT1 в регистре захвата ICR1. Это действие может производиться либо по активному фронту сигнала на выводе ICP микроконтроллера (линия порта РЕО), либо по сигналу от аналогового компаратора, которые определяют сигнал захвата на входе блока управления таймера. При этом устанавливается флаг ICF1 регистра TIFR и генерируется запрос на прерывание. Разрешение прерывания осуществляется установкой в 1 разряда TICIE1 (бит 3) регистра TIMSK.

Для управления схемой захвата используют два разряда регистра TCCR1B: ICNC1 и ICES1. Разряд ICNC1 управляет схемой подавления помех. Если этот разряд сброшен в О, схема подавления помех выключена и захват проводится по первому же активному фронту на выводе ICP микроконтроллера. Если этот разряд установлен в 1, то при появлении активного фронта на выводе ICP схема управления выполняет четыре выборки с частотой, равной тактовой частоте микроконтроллера. Захват будет выполнен только в том случае, если все выборки имеют уровень, соответствующий активному фронту сигнала (уровень 1 – для нарастающего фронта и уровень О – для спадающего).

Активный фронт сигнала, по которому будет выполнено сохранение содержимого счетчика TCNT1 в регистре захвата, определяется состоянием разряда ICES1. Если этот разряд сброшен в О, то активным является спадающий фронт. Если же этот разряд установлен в 1, то активным является нарастающий фронт.

Физически регистр захвата ICR1 размещен в двух регистрах ICR1H:ICR1L, доступных только для чтения. Поскольку регистр захвата является 16-разрядным, при его чтении, как уже было сказано, используется специальный регистр TEMP. При чтении регистра ICR1L (младший байт) его содержимое посылается в процессорное устройство, а содержимое регистра ICR1H (старший байт) сохраняется в регистре TEMP. При чтении регистра ICR1H возвращается значение, сохраненное в регистре TEMP. Следовательно, при чтении регистра ICR1 первым должен быть прочитан регистр ICR1L. Прерывания на время обращения к регистру ICR1 должны быть запрещены.

Функция сравнения (compare)

Данная функция заьслючается в непрерывном (каждый машинный цикл) сравнении содержимого счетчика TCNT1 и регистра сравнения. При совпадении их содержимого устанавливается флаг соответствующего прерывания. В микроконтроллерах АТх8515 есть два регистра сравнения (0CR1A и OCR IB), причем операция сравнения производится для каждого регистра в отдельности. Если значение счетчика становится равным числу, находящемуся в регистре сравнения, то в следующем машинном цикле устанавливается соответствующий этому регистру флаг прерывания в регистре TIFR (для регистра 0CR1A – флаг 0CF1A, для регистра OCR IB – флаг 0CF1B) и генерируется запрос на прерывание. Разрешение прерываний осуществляется установкой в 1 соответствующих разрядов регистра TIMSK (0CIE1A – бит 6 для запроса 0CF1A и 0CIE1B – бит 5 для запроса 0CF1B).

Наряду с установкой флага в регистре TIFR при равенстве счетчика и регистра сравнения могут выполняться и другие действия: сброс таймера;счетчика (только для регистра 0CR1A) и изменение состояния определенного вывода микроконтроллера (для обоих регистров).

Поведение микроконтроллера, т. е. выполнение или невыполнение указанных действий, определяется несколькими разрядами регистров управления TCCR1A и TCCR1B. Состояние разрядов СОМ 1×1, СОМ 1×0 (х = А,В) определяет поведение вывода OClx при совпадении содержимого счетчика TCNT1 и регистра сравнения OCRlx согласно табл. 4.6. При изменении состояния этих разрядов соответствующее прерывание от схемы компаратора рекомендуется запретить (во избежание ложной генерации прерывания). Чтобы таймер;счетчик мог управлять выводом, последний должен быть сконфигурирован как выход порта.

Таблица 4.6. Управление выводом OClx (х = А, В)

COMlxl

сом 1×0

Описание

0

0

Таймер;счетчик Т1 отключен от вывода OClx

0

1

Состояние вывода меняется на противоположное

1

0

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

1

1

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

Если разряд СТС1 регистра управления TCCR1B установлен в 1, то при совпадении содержимого счетчика TCNT1 и регистра сравнения 0CR1A производится сброс таймера;счетчика в нулевое состояние.

Каждый регистр сравнения физически размещается в двух регистрах ввода;вывода: 0CR1A – OCRlAHrOCRlAL; 0CR1B – 0CR1BH:0CR1BL.

Поскольку регистры сравнения являются 16-разрядными, при их чтении и записи используется специальный регистр TEMP. Процесс записи и чтения 16-разрядных регистров выполняется так же, как и регистра TCNT1. Прерывания на время обращения к регистрам сравнения 0CR1A и OCR IB должны быть запрещены.

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты