В HTML      В PDF
микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > MAXQ

реклама

 
радиационно стойкие ПЗУ Миландр

Продажа силового и бронированного кабеля и провода в Москве

текст еще



Раздел 8: Модуль таймера/счетчика 1

Модуль таймера/счетчика 1 позволяет микроконтроллерам семейства MAXQ управлять 16-разрядным программируемым таймером/счетчиком. Однако, этот модуль имеется не во всех микроконтроллерах семейства MAXQ.

Таймер 1

Таймер 1 - второй тип 16-разрядного таймера/счетчика. Таймер 1 состоит из 16-разрядного регистра, состоящего из двух байт T1H и T1L. Запускается Таймер 1 путем установки бита (TR1) в регистре T1CN. В отличие от Таймера 0, Таймер 1 может работать только как полный 16-разрядный таймер/счетчик. Однако, он поддерживает много дополнительных режимов, не доступных Таймеру 0. Эти дополнительные режимы активизируются путем установки соответствующих битов регистра T1CN. Для поддержки дополнительных функциональных возможностей Таймера 1 имеются 16-разрядный регистр захвата данных, состоящий из двух байт T1CH и T1CL, и второй управляющий регистр T1MD. В таблице 1 приведены режимы Таймера 1 и состояние управляющих бит регистра T1CN, приводящие к инициализации этих режимов. Таймер 1 может синхронизироваться от внешнего источника синхроимпульсов (за исключением режима формирования выходных синхроимпульсов).

Таблица 11. Режимы Таймера/Счетчика 1

Рабочие режимы Таймера 1 Установки битов регистра T1CN Дополнительные установки
T1OE DCEN EXEN1 C/nonT1 CP/nonRL1
Автоматическая перезагрузка 0 0 0 x 0 --
Автоматическая перезагрузка с использованием вывода T1EX 0 0 1 x 0 --
Захват с использованием вывода T1EX 0 0 1 x 1 --
Счет на увеличение/уменьшение с использованием вывода T1EX 0 1 0 x 0 --
- 0 x x 1 x Для синхронизации используется вывод Т1
Режим формирования синхросигнала на выводе Т1 1 x x 0 0 --

Режим Таймера 1: 16- разрядный таймер/счетчик с автоматической перезагрузкой

Таймер 1 переходит в режим таймера/счетчика с автоматической перезагрузкой при сбросе бита CP/RL1 (T1CN.0) в 0. В этом режиме, Таймер 1 работает как обыкновенный 16- разрядный таймер/счетчик, но имеет 16- разрядное значение перезагрузки и способность перезапускаться по сигналу на внешнем выводе.

Таймер 1 начинает счет со значения, содержащегося в регистрах T1H и T1L. При переполнении таймера устанавливается флаг TF1. Этот флажок может сформировать запрос на прерывание, при условии, что оно разрешено. после переполнения таймер начинает считать от установленного начального значения. Начальное значение устанавливается программно в регистрах захвата Т1CH и T1CL. В режиме автоматической перезагрузки эти регистры не могут использоваться для захвата данных, так как эти режимы являются взаимоисключающими.

В режиме автоматической перезагрузки Таймер 1 может также быть принудительно перезапущен сигналом на выводе T1EX. Если бит EXEN1 (T1CN.3) установлен в 1, то спадающий фронт на выводе T1EX вызовет перезагрузку. В противном случает, сигнал на выводе T1EX игнорируется.

Если бит C/nonT1 (T1CN.1) сброшен в 0, то таймер синхронизируется от системных синхроимпульсов. Когда C/nonT1 = 1, то синхронизация осуществляется от синхроимпульсов на выводе T1. Разрешение или блокировку поступления входных синхроимпульсов осуществляет бит TR1 (T1CN.2). На рисунке 19 приведена схема модуля Таймера 1, находящегося в режиме с автоматической перезагрузкой.

Таймер/Счетчик 1 в режиме 16- разрядного таймера/счетчика с автоматической перезагрузкой
Рисунок 19. Таймер/Счетчик 1 в режиме 16- разрядного таймера/счетчика с автоматической перезагрузкой

Режим Таймера 1: захват 16- битных событий

Режим захвата 16- битных событий активизируется установкой бита CP/nonRL1 (T1CN.0) в 1. Таймер 1 начинает считать от значения, установленного в регистрах T1H и T1L до достижения состояния переполнения, после чего устанавливается флаг TF1. Этот флаг может сформировать запрос на прерывание, если оно разрешено. Дополнительная функция захвата данных активизируется установкой бита EXEN1 (T1CN.3) в 1. Сразу после этого отрицательный перепад сигнала на выводе T1EX приводит к загрузке начального значения Таймера 1 из регистров T1H и T1L в регистры захвата данных (Т1СН, T1CL) и устанавливается флаг EXF1 (T1CN.6). Установка флага EXF1 может сформировать запрос на прерывание, если оно разрешено. Если бит EXEN1 установлен в 0, то отрицательный перепад на выводе T1EX не приводит к инициализации захвата данных.

Таймер/Счетчик 1 в режиме захвата 16- разрядных событий
Рисунок 20. Таймер/Счетчик 1 в режиме захвата 16- разрядных событий

Режим Таймера 1: Добавляющий/вычитающий счетчик с автоматической перезагрузкой

Режим добавляющего/вычитающего счетчика активизируется установкой бита DCEN (T1CN.4) в 1. Когда бит DCEN установлен в 1, Таймер 1 в зависимости от состояния бита T1EX осуществляет добавляющий/вычитающий счет. Добавляющий счет осуществляется когда на выводе T1EX установлена логическая 1, а когда на этом выводе ноль, то осуществляется вычитающий счет. Когда DCEN = 0, то Таймер 1 осуществляет только добавляющий счет.

При переполнении происходит перезагрузка значений регистров Т1СН и T1CL в регистры T1H и T1L. При вычитающем счете антипереполнение происходит когда значения в регистрах T1H и T1L становятся равными значениям в регистрах Т1СН и T1CL, соответственно. Когда антипереполнение происходит, в регистры T1H и T1L заносится значение FFFFh, и счет продолжается.

Обратите внимание, что в этом режиме, выход переполнения/антипереполнения таймера формируется детектором фронта, аналогично биту TF1 (T1CN.7). Эти детекторы фронтов изменяют бит EXF1 (T1CN.6) при каждом переполнении или антипереполнении. Поэтому, бит EXF1 ведет себя как 17- ый бит счетчика, и также может использоваться.

Таймер/Счетчик 1 в режиме 16- битного добавляющего/вычитающего счетчика с автоматической перезагрузкой
Рисунок 21. Таймер/Счетчик 1 в режиме 16- битного добавляющего/вычитающего счетчика с автоматической перезагрузкой

Режим Таймера 1: Формирователь синхроимпульсов

Также Таймер 1 может быть настроен на формирование на выводе T1 синхросигнала (см. рисунок 22). Чтобы настроить Таймер 1 для работы в этом режиме необходимо сначала активизировать режим 16- разрядного таймера с автоматической перезагрузкой (CP/nonRL1 = 0, C/nonT1 = 0). Затем бит T1OE (T1CN.5) должен быть установлен в 1. Для активизации таймера бит TR1 (T1CN.2) также должен быть установлен в 1. Бит DCEN в этом режиме не оказывает никакого влияния. В этом режиме на выходе формируются синхроимпульсы со скважностью, равной 2. Частота этого прямоугольного сигнала определяется по формуле, приведенной на рисунке 22. Каждое переполнение таймера вызывает изменение сигнала на выводе. Обратите внимание, что сам таймер не формирует прерывание, но если необходимо, может быть использовано внешние прерывание Таймера 1 (если EXEN1 = 1).

Таймер 1 в режиме формирования синхроимпульсов
Рисунок 22. Таймер 1 в режиме формирования синхроимпульсов

Периферийные регистры Таймера/Счетчика 0

7             0  
                Регистр управления Таймером/Счетчиком 1 (Timer/Counter 1 Control - T1CN)
0 0 0 0 0 0 0 0 Сброс при включении питания и системный сброс
rw rw rw rw rw rw rw rw Доступен для чтения (r), записи (w) или специальный (s) доступ
(CP/nonRL1) Выбор режима захвата/перезагрузки.
Этот бит определяет, какая функция Таймера 1 будет использоваться: захвата или перезагрузки. В любом режиме Таймер 1 перезагружается при переполнении.. Установка этого бита в 1 выбирает режим захвата по спадающему фронту на выводе T1EX (если бит EXEN1 = 1). Очистка этого бита выбирает режим автоматической перезагрузки при переполнении или при обнаружении спадающего фронта на выводе T1EX (если бит EXEN1 = 1).
(C/nonT1) Выбор режима таймера/счетчика.
Этот бит определяет, будет ли Таймер 1 работать в режиме счетчика или таймера. Если этот бит установлен, то Таймер 1 будет считать отрицательные фронты на выводе T1. Если этот бит сброшен в 0, то Таймер 1 работает в режиме таймера. Скорость Таймера 1 определяется битом T1M (делить или нет на 12 системные синхроимпульсы).
(TR1) Запуск Таймера 1.
Установка этого бита в1 приводит к запуску таймера.
(EXEN1) Разрешение реакции на внешние события.
Установка этого бита в 1 разрешает режим захвата/автоматической перезагрузки по отрицательному фронту на выводе T1EX. Сброс этого бита в 0 обеспечивает игнорирование любых событий на выводе T1EX.
(DCEN) Разрешение вычитающего счета.
Этот бит совместно с выводом T1EX определяют направление счета в режиме 16- разрядного счетчика с автоматической перезагрузкой. Если этот бит сброшен в 0, то таймер осущетвляет увеличивающий счет. Если этот бит установлен в 1, то, если на выводе T1EX установлена 1 - осуществляется увеличивающий счет, а если 0 - вычитающий счет.
(T1OE) Активизация режима формирования синхросигнала.
Установка этого бита в 1 разрешает формировать на выводе T1 синхросигнала (если C/nonT1 = 0). При переполнении запрос на прерывание формироваться не будет. При сброшенном в 0 этом бите вывод T1 может использоваться в качестве линии ввода/вывода общего назначения или в качестве вход.
(EXF1) Внешний флаг переключения Таймера 1.
Отрицательный перепад на выводе T1EX приводит к установке этого флага (если CP/nonRL1 =EXEN1 = 1) или (CP/nonRL1 = DCEN = 0 и EXEN1 = 1). Когда CP/nonRL1 = 0 и DCEN = 1, EXF1 изменяется при переполнении или антипереполнении Таймера 1. В этом режиме EXF1 может использоваться как 17- ый разряд таймера. Если этот флаг установлен отрицательным фронтом, то он должен быть сброшен программно.
(TF1) Флаг переполнения Таймера 1.
Этот бит устанавливается при переполнении таймера или при совпадении состояния таймера с регистром захвата в режиме вычитающего счета. Должен быть сброшен программно.


7             0  
                Регистр старшего байта Таймера/Счетчика 1 (Timer/Counter 1 High (T1H) Register)
                Регистр младшего байта Таймера/Счетчика 1 (Timer/Counter 1 Low (T1L) Register)
0 0 0 0 0 0 0 0 Сброс при включении питания и системный сброс
rw rw rw rw rw rw rw rw Доступен для чтения (r), записи (w) или специальный (s) доступ
Регистры T1H и T1L используются для загрузки и считывания соответствующих байтов 16- разрядного Таймера 1


7             0  
                Регистр захвата старшего байта Таймера/Счетчика 1 (Timer/Counter 1 High (T1СH) Register)
                Регистр захвата младшего байта Таймера/Счетчика 1 (Timer/Counter 1 Low (T1СL) Register)
0 0 0 0 0 0 0 0 Сброс при включении питания и системный сброс
rw rw rw rw rw rw rw rw Доступен для чтения (r), записи (w) или специальный (s) доступ
Регистры T1СH и T1СL используются для захвата значений T1H и T1L. Также они используются как старший и младший байт начального значения в режиме автоматической загрузки.


7             0  
                Регистр режима Таймера/Счетчика 1 (Timer/Counter 1 Mode - T1MD)
0 0 0 0 0 0 0 0 Сброс при включении питания и системный сброс
rw rw rw rw rw rw rw rw Доступен для чтения (r), записи (w) или специальный (s) доступ
(T1M) Выбор источника синхронизации Таймера 1.
Выбирает частоту синхронизации Таймера 10 = в качестве синхросигнала используются деленные на 12 системные синхроимпульсы1 = в качестве синхросигнала используются деленные на 1 системные синхроимпульсы
(ET1) Разрешение прерывания от Таймера 1.
Установка этого бита разрешает прерывание от Таймера 1 по флагам TF1 и EXF1 из регистра T1CN. Флаг EXF1 не формирует запрос на прерывание в режиме добавляющего/вычитающего счета.
 
 
 
 
 
 

Выбор периода Таймеров 0 и 1

У микроконтроллеров семейства MAXQ период каждого таймера задается независимо. По умолчанию для каждого таймера синхросигналом являются деленные на 12 системные синхроимпульсы. Частота входных синхроимпульсов для таймеров определяется битом TxM (T0M для Таймера 0; T1M для Таймера 1). Установка бита TxM позволяет использовать системные синхроимпульсы в качестве входных синхроимпульсов для этих таймеров. В таблице 12 показана зависимость частоты входных синхроимпульсов для таймеров от состояния служебного бита TxM.

Таблица 12. Выбор частоты синхронизации Таймера 0 и Таймера 1

Частота системных синхроимпульсов Биты выбора частоты системных синхроимпульсов PMME, CD1, CD0 Частота синхронизации Таймеров 0 и 1
TxM = 0 TxM = 1
Деленные на 1 000 CLK / 12 CLK / 1
Деленные на 2 001 CLK / 24 CLK / 2
Деленные на 4 010 CLK / 48 CLK / 4
Деленные на 8 011 CLK / 96 CLK / 8
Режим управления питанием (деленные на 256) 1xx CLK / 3072 CLK / 256


<-- Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (495) 514 4110. e-mail:info@eust.ru
©1998-2016 ООО Рынок Микроэлектроники