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

реклама

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

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

текст еще



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

Модуль таймера/счетчика 0 позволяет микроконтроллерам семейства MAXQ управлять 16-разрядным программируемым таймером/счетчиком. Наличие и количество модулей таймера/счетчика 0 у различных микроконтроллеров может быть различным.

Таймер 0

Таймер 0 - первый тип 16-разрядного таймера/счетчика. Таймер 0 состоит из 16- разрядного регистра, который состоит в свою очередь из двух байт: T0H и T0L. Таймер 0 запускается путем установки бита TR0 в регистре. Таймер 0 поддерживает четыре основных режима работы. Режим работы определяется содержимым регистра T0CN. В таблице 10 приведены четыре режима Таймера 0 и состояния битов регистра T0CN, при котором эти режимы активны. В каждом рабочем режиме Таймер 0 может синхронизироваться внешним сигналом, а так же можно реализовать логическое умножение синхросигнала и внешнего управляющего сигнала (так называемый логический вентиль). Функция логического вентиля особенно полезна при изменении длительности импульсов внешних сигналов.

Таблица 10. Режимы Таймера 0

Рабочий режим таймера 0 Состояние битов регистра T0CN Дополнительное управление
GATE C/nonT M1 M0
13- битный таймер/счетчик x x 0 0 --
16- битный таймер/счетчик x x 0 1 --
8- битный таймер с автоматической перезагрузкой x x 1 0 --
Два 8- битных таймера/счетчика x x 1 1 --
(Определяется состоянием битов M1:M0) x 1 x x В качестве синхросигнала используется сигнал на выводе T0
(Определяется состоянием битов M1:M0) 1 x x x В качестве синхросигнала используется входной сигнал, логически умноженный на сигнал T0G

Режим Таймера 0: 13- битный Таймер/Счетчик

Как было упомянуто в Таблице 10, установка в регистре T0CN значения битов M1:M0 = 00b выбирает для Таймера 0 режим 13- битного Таймера/Счетчика. T0H содержит 8 старших бит 13- разрядного таймера, а биты 4 - 0 регистра T0L содержат 5 младших бит 13- разрядного таймера. Перенос из 4 бита регистра T0L используется в качестве тактового импульса регистра T0H, таким образом, биты 5 - 7 регистра T0L полностью не задействованы. Старшие три бита T0L неопределенны. Когда 13- битный счетчик достигает значения 1FFFh (все единицы), то на следующем такте в нем устанавливается значение 0000h. После этого устанавливается флаг TF0 (T0CN.5), и, если разрешено, происходит прерывание.

Как только таймер запущен установкой бита активизации таймера TR0 (T0CN.4), то увеличение значения счетчика происходит при возникновении одного из следующих условий:

  1. GATE (T0CN.3) = 0
  2. GATE (T0CN.3) = 1 и T0G (внешний вывод) = 1

Обычно входными синхроимпульсами Таймера 0 являются системные синхроимпульсы (определяется битом T0M (T0CN.6)). Однако, если бит C/nonT (T0CN.2) установлен в 1, то синхроимпульсами являются сигналы на выводе T0. При использовании вывода T0 в качестве входа для внешнего синхросигнала, Таймер/Счетчик 0 увеличивается по спадающему фронту этого внешнего синхросигнала. Чтобы надежно обнаруживать спадающий фронт, входной сигнал должен иметь длительность низкого и высокого уровней не менее одного периода системных синхроимпульсов.

Обратите внимание, что когда входные синхроимпульсы Таймера 0 формируются из системных синхроимпульсов, то при изменении коэффициента деления системного делителя (при помощи бита управления регистра CKCN), изменяется и частота входных синхроимпульсов Таймера 0.

Режим Таймера 0: 16- битный Таймер/Счетчик

Установка в регистре T0CN значения битов M1:M0 = 01b выбирает для Таймера 0 режим 16- битного Таймера/Счетчика. Этот режим идентичен режиму 13- битного Таймера/Счетчика, за исключением того, что пара регистров T0H:T0L содержат 16-разрядное значение. T0H содержит старший байт, а T0L - младший байт. Переполнение происходит при достижении счетчиком значения FFFFh. При переполнении устанавливается флаг TF0 (T0CN.5) и, если оно разрешено, происходит прерывание. Выбор периода, выбор счетчика/таймера и функция логического вентиля работают также, как и при работе в режиме 13- битного счетчика.

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

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

Установка в регистре T0CN значения битов M1:M0 = 10b выбирает для Таймера 0 режим 8- битного счетчика с автоматической перезагрузкой начального значения. Для счета таймер использует регистр T0L, а для хранения начального значения - регистр T0H. Для правильного счета программное значение должно инициализировать и T0L и T0H с одинаковыми значениями. Как только в регистре T0L устанавливается значение FFh происходит автоматическая загрузка в него значения, содержащегося в регистре T0H. Сам регистр T0H таймер не изменят. Подобно другим режимам Таймера 0, в этом режиме синхронизация может осуществляться от системных синхроимпульсов или от синхроимпульсов на выводе T0 (C/nonT = 1), при этом функция логического вентиля также доступна (GATE = 1).

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

Режим Таймера 0: Два 8- разрядных Таймера/Счетчика

Установка в регистре T0CN значения битов M1:M0 = 11b выбирает для Таймера 0 режим двух 8- разрядных таймеров/счетчиков. В этом режиме регистр T0L используется в качестве 8- разрядного таймера/счетчика, который может синхронизироваться системными синхроимпульсами или по спадающему фронту сигнала на выводе T0 ( в соответствии со значением бита C/nonT (T0CN.2)). Как и в других режимах, функция логического вентиля также доступна. Регистр T0H становится независимым 8- разрядным таймером, который может считать только системные синхроимпульсы (см. рисунок 18). Активность обоих таймеров /счетчиков (T0L и T0H) определяется состоянием бита TR0, но прерывание связано с переполнением только регистра T0H.

Таймер/Счетчик 0 в режиме двух 8- разрядных таймеров
Рисунок 18. Таймер/Счетчик 0 в режиме двух 8- разрядных таймеров

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

7             0  
                Регистр управления Таймером/Счетчиком 0 (Timer/Counter 0 Control (T0CN) Register)
0 0 0 0 0 0 0 0 Сброс при включении питания и системный сброс
rw rw rw rw rw rw rw rw Доступен для чтения (r), записи (w) или специальный (s) доступ
М1 М0 Эти биты выбора режима определяют режим работы Таймера/Счетчика
0 0 Режим 0: 8- разрядный с 5- битным предделителем
0 1 Режим 1: 16- разрядный без предделителя
1 0 Режим 2: 8- разрядный с автоматической перезагрузкой
1 1 Режим 3: Два 8- разрядных таймера
(C/nonT) Выбор режима таймера/счетчика 0 (Counter/Timer 0 Select)
0 = Когда TR0 установлен в 1, то синхронизация осуществляется от внутренних синхроимпульсов.
1 = Когда TR0 установлен в 1, то синхронизация осуществляется от синхроимпульсов на входе Т0
(GATE) Управление логическим вентилем таймера 0 (Timer 0 Gate Control)
0 = Таймер 0 синхронизируется по сигналу независимо от сигнала на выводе T0Ggating control pin.
1 = Таймер 0 синхронизируется от внешнего сигнала только тогда, когда сигнал на выводе T0G равен 1
(TR0) Управление запуском Таймера 0 (Timer 0 Run Control)
Установка этого бита активизирует Таймер/Счетчик 0.
Очистка этого бита отключает Таймер/Счетчик 0.
(TF0) Флаг переполнения Таймера 0 (Timer 0 Overflow Fla.g)
Этот бит устанавливается в 1 при переполнении таймера 0.
Очищается этот бит программно или при сбросе.
(T0M) Выбор источника синхронизации Таймера 0 (Timer 0 Clock Select)
Бит T0M выбирает источник синхронизации для Таймера 0:0 = Использует деленные на 12 системные синхроимпульсы.
1 = Использует не деленные системные синхроимпульсы.
(ET0) Разрешение прерывания при переполнении Таймера 0 (Enable Timer 0 Interrupt).
Установка этого бита разрешает прерывание при переполнении Таймера 0
Флаг TF0 очищает этот бит и запрещает прерывание по переполнению Таймера 0.


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


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





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