8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 115 116 117 118 119 120 121 ... 195

Необходимо отметить, что при переключении между синхронным и асинхронным режимами содержимое регистров таймера/счетчика может быть повреждено. Чтобы этого избежать, рекомендуется придерживаться следующей последовательности действий:

1.Запретить прерывания от таймера/счетчика.

2.Переключить его в требуемый режим.

3.Записать новые значения в регистры TCNTfl, OCRn (OCRnx) и TCCR/* (TCCRux).

4.В случае переключения в асинхронный режим дождаться сброса флагов TCNaiUB, OCRUB (OCR2xUB) и TCRUB (TCR2xUB).

5.Сбросить флаги прерываний таймера/счетчика.

6.Разрешить прерывания (если требуется).

При работе таймера/счетчика в асинхронном режиме установка флагов прерываний от него производится синхронно с тактовым сигналом микроконтроллера. Для синхронизации требуется 3 такта плюс один период тактового сигнала таймера/счетчика. Поэтому к моменту, когда микроконтроллер сможет прочитать состояние счетчика, вызвавшее установку флага прерывания, оно изменится, по меньшей мере, на единицу. Изменение состояния выводов ОСп (ОСл А/ОС л В) производится по тактовому сигналу таймера/счетчика и не синхронизируется с тактовым сигналом микроконтроллера.

Отдельно следует сказать о «взаимодействии» асинхронного режима таймеров/счетчиков с режимами пониженного энергопотребления микроконтроллера.

Первое замечание касается использования прерываний от таймера/счетчика для «пробуждения» микроконтроллера. Если перевод микроконтроллера в режим Power Save или Extended Standby осуществляется сразу же после записи в регистры таймера/счетчика, необходимо убедиться, что операция записи завершена. Наиболее важно это в случае, когда для «пробуждения» микроконтроллера используется прерывание от блока сравнения, поскольку во время записи в счетный регистр или регистр сравнения работа блока сравнения заблокирована. Соответственно, если переход в «спящий» режим произойдет до окончания операции записи в указанные регистры, прерывания от схемы сравнения никогда не произойдет, и микроконтроллер не сможет выйти из «спящего» режима.

Кроме того, необходимо быть осторожным при повторном переходе в режим Power Save или Extended Standby после выхода из них по прерыванию от таймера/счетчика. Дело в том, что в этом случае для запуска подсистемы прерываний требуется промежуток времени, равный одному периоду сигнала на выводе TOSC1. Если же промежуток времени между «пробуждением» и повторным переходом в «спящий» режим будет меньше указанного, генерации прерывания и соответственно перехода микроконтроллера в рабочий режим не произойдет. Для формирования задержки требуемой длительности рекомендуется


после «пробуждения» микроконтроллера выполнить запись в какой-либо из регистров таймера/счетчика и дождаться завершения этой операции.

После подачи напряжения питания, а также после «пробуждения» микроконтроллера из режима Power Down или Standby таймер/счетчик рекомендуется использовать только спустя секунду после указанных событий. Эта задержка необходима для запуска тактового генератора таймера/счетчика. Соответственно, при выходе из режима Power Down или Standby содержимое всех регистров таймера/счетчика можно считать потерянным (из-за нестабильности тактового сигнала во время запуска генератора). Причем это справедливо не только при использовании кварцевого резонатора, но и при использовании внешнего тактового сигнала.

7.6.16-битные таймеры/счетчики

Количество 16-битных таймеров/счетчиков зависит от модели. Таймер/счетчик Т1 присутствует во всех моделях микроконтроллеров семейства Mega. В моделях ATmega64x/128x и ATmega 162х имеется уже два 16-битных таймера/счетчика — Т1 и ТЗ. Больше всего 16-битных таймеров/счетчиков в моделях ATmega640x/1280x/1281x/2560x/2561x — целых пять (Tl, ТЗ...Т5). Как и 8-битные таймеры/счетчики ТО и Т2, они могут использоваться для формирования временных интервалов, для подсчета числа внешних событий, формирования сигналов и генерации сигналов с ШИМ. В дополнение к этому 16-битные таймеры/счетчики могут по внешнему сигналу сохранять свое текущее состояние в отдельном регистре ввода/вывода.

Рассматриваемые таймеры/счетчики различных моделей отличаются только количеством блоков сравнения и соответственно количеством каналов генерации ШИМ-сигналов. Так, если в моделях ATmega64x/128x и ATmega640x/1280x/1281x/2560x/2561x 16-битные таймеры/счетчики имеют по три блока сравнения, то в остальных моделях — только по два. Кроме того, таймеры/счетчики Т4 и Т5 моделей ATmega 1281х/2561х являются усеченными — из-за малого количества выводов микроконтроллера в них не поддерживаются функции захвата и сравнения, а также тактирование от внешнего сигнала. Упрощенная структурная схема 16-битных таймеров/счетчиков приведена на Рис. 7.17.

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

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

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

•два или три 16-битных регистра сравнения OCR/jA, OCR/jB, OCR/jC;

•два или три 8-битных регистра управления TCCR/jA, TCCR/zB, TCCR/jC.


Счет Сброс

Направл.

Таймер/cww*

TCNTn

—ОСЙлА —

ОСВлб

ТССЙпА

I

TOVn

Запрос на прерывание

clkTn

Селектор тактового сигнала

OCFnA 3апР°сна прерывание

Сигнал*»

ОСяА

ТОР

► OCFnB

Запрос на прерывание

Формирователь \

ШяВ

OCFnC 3апР°сна прерывание

Формирователь сигналов

ОСлС

Запрос на "ICFn прерывание

С выхода аналогового компаратора

Детектор

mm*

фронтов

ТССШЗ

Т

ТОСМ

~Г~

Рис. 7.17. Структурная схема 16-битных таймеров/счетчиков (Т1,ТЗ,Т4, Т5)

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

Адреса всех регистров 16-битных таймеров/счетчиков указаны в Табл. 7.20.



0 ... 115 116 117 118 119 120 121 ... 195