Категории
Самые читаемые
onlinekniga.com » Компьютеры и Интернет » Программирование » Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт

Читать онлайн Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 48 49 50 51 52 53 54 55 56 ... 150
Перейти на страницу:

Свойство принудительной установки позволяет два раза за период работы счетчика временной базы изменять состояние на выходах каналов 0…6. Один раз по собственному событию выходного сравнения канала, второй раз — по событию в канале 7.

Регистры для управления каналами захвата/сравнения

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

Регистр режимов каналов захвата/сравнения

Регистр режимов каналов захвата/сравнения TIOS (Timer Input capture/Output compare Register) располагается в памяти МК по адресу $0080. Формат регистра представлен на рис. 4.38. Каждый из битов регистра IOSn определяет режим работы канала с номером n. Если бит установлен в 1, то канал работает в режиме выходного сравнения. Если бит равен 0, то канал настроен на режим входного захвата.

Рис. 4.38. Формат дополнительных регистров управления таймером: TIOS, CFORC, OC7M, OC7D

Регистр принудительного события выходного сравнения

Регистр принудительного события выходного сравнения CFORC (Timer Compare Force Register) располагается в памяти МК по адресу $0081. Формат регистра представлен на рис. 4.38. Установка бита FOCn в 1 немедленно вызывает событие выходного сравнения в канале с номером n, независимо от текущего состояния счетчика временной базы и регистра данных канала. Функция принудительной установки очень удобна для задания начального уровня выхода канала выходного сравнения.

Регистр разрешения работы под управлением канала 7

Регистр разрешения работы под управлением канала 7 OC7M (Timer Output Compare 7 Mask Register) располагается в памяти МК по адресу $0082. Формат регистра представлен на рис. 4.38. Каждый из битов регистра OC7M разрешает (при OC7Mn = 1) режим принудительной установки для одноименного (с номером n) канала по событию в канале выходного сравнения 7. Если бит OC7Mn = 0, то канал с номером n работает в автономном режиме.

Регистр установки данных под управлением канала 7

Регистр установки данных под управлением канала 7 OC7D (Timer Output Compare 7 Data Register) располагается в памяти МК по адресу $0083. Формат регистра представлен на рис. 4.38. Каждый из битов регистра OC7Dn задает значение, которое должно быть установлено на выходе канала с номером n в момент в момент события выходного сравнения в канале 7. При этом необходимо предварительно разрешить работу желаемых каналов под управлением канала 7 установкой соответствующих битов в регистре OC7M.

Регистры управления таймером 1 и 2

Регистры управления таймером TCTL1 и TCTL2 (Timer Control Register) располагаются в памяти МК по адресам $0088 и $0089. Форматы регистров приведены на рис. 4.39. Каждому каналу таймера поставлены в соответствие два бита OMn:OLn регистров TCTL1 и TCTL2. Биты OMn:OLn определяют один из четырех режимов работы формирователя уровня канала, если этот канал работает в режиме выходного сравнения. Комбинации кодов для битов OMn:OLn приведены на рис. 4.37.

Рис. 4.39. Формат основных регистров управления таймером:TCTL1, TCTL2, TCTL3, TCTL4

Регистры управления таймером 3 и 4

Регистры управления таймером TCTL3 и TCTL4 (Timer Control Register) располагаются в памяти МК по адресам $008A и $008B. Форматы регистров приведены на рис. 4.39. Каждому каналу таймера поставлены в соответствие два бита EDGnB:EDGnA регистров TCTL3 и TCTL4. Биты EDGnB:EDGnA определяют один из четырех режимов работы детектора события канала, если этот канал работает в режиме входного захвата. Комбинации кодов для битов EDGnB:EDGnA приведены на рис. 4.35.

Регистр масок таймера 1

Регистр масок таймера TMSK1 (Timer Mask Register 1) располагается в памяти МК по адресу $008C. Формат регистра приведен на рис. 4.40. Каждый бит этого регистра CnI разрешает или запрещает прерывания по событию в одноименном (с номером n) канале таймера. Если бит CnI равен 1, то прерывания разрешены. При CnI = 0 прерывания по событию в канале запрещены.

Рис. 4.40. Формат регистров масок таймера:TMSK1, TMSK2

Регистр масок таймера 2

Регистр масок таймера TMSK2 (Timer Mask Register 2) располагается в памяти МК по адресу $008D. Формат регистра приведен на рис. 4.40. Бит TOI разрешает прерывания по флагу переполнения счетчика временной базы TOF. Бит TCRE разрешает сброс счетчика временной базы (см. раздел 4.14.2, сброс счетчика временной базы). Биты PR2:PR1:PR0 устанавливают коэффициент деления программируемого делителя на входе счетчика временной базы в соответствие с табл. рис. 4.28.

Регистр флагов таймера 1

Регистр флагов таймера TFLG1 (Timer Flag Register 1) располагается в памяти МК по адресу $008E. Формат регистра представлен на рис. 4.41. Каждому каналу таймера поставлен в соответствие флаг события CnF. Флаг CnF устанавливается в 1 автоматически, если в канале произошло событие входного захвата или выходного сравнения, в зависимости от текущего режима работы канала. Установленный бит события CnF вызовет прерывание, если в регистре TMSK1 установлен одноименный бит разрешения прерывания. Флаг события CnF должен быть сброшен под управлением программы, для чего в бит CnF должна быть записана 1. Существует альтернативный способ для сброса флагов события CnF. Если бит TFFCA в регистре TSCR установлен, то чтение или запись в регистр данных канала автоматически сбрасывает бит события этого канала.

Рис. 4.41. Формат регистров флагов таймера:TFLG1, TFLG2

Регистр флагов таймера 2

Регистр флагов таймера TFLG2 (Timer Flag Register 2) располагается в памяти МК по адресу $008F. Формат регистра представлен на рис. 4.41. В регистре присутствует всего один флаг — флаг переполнения счетчика временной базы TOF. Этот флаг сбрасывается посредством записи 1 в уже установленный бит TOF.

Регистры данных каналов захвата/сравнения

Регистры данных каналов захвата/сравнения TCn — 16 разрядные. В памяти каждый регистр представлен двумя 8 разрядными регистрами: TCnH — старший байт регистра данных канала с номером n, TCnL — младший байт регистра данных канала с номером n. Если канал настроен на режим входного захвата, то в регистре данных TCn содержится код счетчика временной базы в момент последнего события входного захвата. Если же канал настроен на режим выходного сравнения, то в регистр данных TCn под управлением программы записывается код момента сравнения. Формат и адреса расположения в памяти восьми регистров данных каналов TC0…TC7 приведены на рис. 4.42.

Регистр данных канала 0: TC0H:TC0L Адрес: $0090–0091 Регистр данных канала 1: TC1H:TC1L Адрес: $0092–0093 Регистр данных канала 2: TC2H:TC2L Адрес: $0094–0095 Регистр данных канала 3: TC3H:TC3L Адрес: $0096–0097 Регистр данных канала 4: TC4H:TC4L Адрес: $0098–0099 Регистр данных канала 5: TC5H:TC5L Адрес: $009A–009B Регистр данных канала 6: TC6H:TC6L Адрес: $009C–009D Регистр данных канала 7: TC7H:TC7L Адрес: $009E–009FФормат регистров данных таймера:TCnH, TCnL

Рис. 4.42. 

Вопросы для самопроверки

1. Опишите два возможных способа для сброса флага события в регистре TFLG1.

Ответ: По первому способу биты флагов событий в каналах захвата/сравнения CnF в регистре TFLG1 сбрасываются посредством записи 1 в тот разряд регистра TFLG1В, который подлежит сбросу. Попытка записи 0 в разряд, который установлен в 1, не даст желаемого результата. п.1. По второму способу чтение или запись в регистр данных канала автоматически сбрасывает бит события этого канала, если в регистре TSCR установлен бит TFFCA.

2. Какой код должен быть записан в регистр режимов каналов захвата/сравнения TIOS, чтобы каналы с четными номерами работали в режиме входного захвата, а каналы с нечетными номерами в режиме выходного сравнения?

Ответ: $AA.

3. Какой код и в какие разряды регистра TCTL1 должен быть записан, чтобы настроить формирователь уровня канала 7 в режим установки 1?

Ответ: Код 11 в разряды OM7:OL7.

4. Какой код и в какие разряды регистра TCTL4 должен быть записан, чтобы настроить детектор события канала 1 в режим мониторинга за любым изменением уровня сигнала на входе канала 1?

Ответ: Код 11 в разряды EDG1B:EDG1A.

Примеры работы с таймером

Познакомившись с основными подсистемами модуля таймера, мы рассмотрим несколько примеров применения. В первом примере мы будем использовать подсистему входного захвата для измерения частоты и периода следования импульсов некоторого логического сигнала. Во втором примере мы будем формировать на одном из выходов МК импульсную последовательность, используя для этого подсистему выходного сравнения и подсистему прерывания МК.

1 ... 48 49 50 51 52 53 54 55 56 ... 150
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт.
Комментарии