Бродин В. Б., Шагурин И. И. Микроконтроллеры (1999) (1095894), страница 15
Текст из файла (страница 15)
Поле РКЕЯСА1.Е задает коэффициент деления частоты внешних или внут- ренних сннхроимпульсов, поступающих на вход таймера. Разряды РО, Р1, Р2 этого поля управляют работой программируемого делителя частоты в соответствии с табл. 1.17. ЕРА 2 )МТ ОЧК 2-3 ЕРА 3 1МТ Т! С(.К (Р1.4) Т1 ОЖ (Р1.5) Т2 С(.К (Р1.6) Т2 ОЖ (Р!.7) ЕРА 1 (Р1.1) ЕРА 2 (Р1.2) МИКРОКСНТРСЛЛЕРМ СЕМЕЙСТВА МСВ-ВВ Табл. 1.17. Коэффициент деления частоты в зависимости от содержимого поля РЯЕЗСА~Е регистров Т1,Т2 СОН Табл.
1.18. Режим работы твйаееров 1 и 2 в зависимости от содержимого поля МООЕ регистров Т1, 2 СОН Поле МОРЕ определяет выбор источника синхросигналов: внутренний ХТА1.1 с частотой ГЕ / 4 или внешний (вход Т1 СЕК или Т2 СЕК), и направление счета таймера: увеличение или уменьшение его содержимого при поступлении следующего синхросигнала. Направление счета задается либо значением разряда () О в регистрах Т1, 2 СОХ, либо сигналом на входе Т1, 2 О1К (выводы Р1.4, Р1.6 порта Р1 при выполнении специальных функций). Разряды МО, М1, М2 этого поля задают режим работы таймера в соответствии с табл. 1.18. Увеличение (инкремент) содержимого таймеров Т1МЕК1, 2 происходит при значениях бита Ш) в регистрах Т1, 2 СОХ или сигналах на внешних выводах Т1, 2 ПИ (выводы Р1.5, Р1.7 порта Р1) равных «1», уменьшение (декремент) — при значениях, равных «0».
Таким образом ЛРОГРЛММИРОЕЛНН ННТЕРЕайо МИКРГЛГОНТРОЛЛЕРЫ. ЛРХ то обеспечивается как программная (путем загрузки соответствующего содержимого регистров Т1,2 СОХ), так и аппаратная (путем подачи внешних сигналов на входы Т1, 2 1)! К) установка направления счета таймеров. При использовании в качестве синхроимпульсов сигналов на входах Т1, 2 С?.К инкремент или декремент содержимого таймеров производится как при положительном (нарастающем), так и при отрицательном (спадающем) фронтах этих сигналов.
При значениях МО - О, М1 1 таймер 2 синхронизируется сигналом переполнения, поступающим от таймера 1. В этом случае при М1 - 1 осуществляется последовательное включение (каскадирование) таймеров, что позволяет сформировать 32-разрядный таймер. При М1 - О последовательно соединенные таймеры 1 и 2 могут иметь различные направления счета. Квадратурный счет реализуется для таймеров 1 или 2 прн значениях разрядов МО - М1 - М2 - 1. В этом случае инкремент или декремент содержимого таймеров производится при поступлении положительного (+) или отрицательного (-) фронта сигнала на входах ТхСЕК, ТхП1К в соответствии с табл.
1.19. Такой способ счета используется при считывании информации о направлении и угле поворота с датчика угловых перемещений. Табл. 1.19. Зависимость направления счета ст состояния на входах ТхСьте и ТКР!й Переполнение таймеров фиксируется, когда при очередном инкременте его содержимое достигает значения ОЕЕЕЕН, или при очередном декремецте содержимое становится равным ООООН. В этом случае устанавливается признйк переполнения соответствующего таймера и выдается запрос на прерывание О'т'К ТМК1 или От'К ТМК2. Обработка этих запросов производится в соответствии с их приоритетом, как описано в разделе 1.3.
В структуру П РС (рис. 1.20) входят четыре модуля обработки событий, каждый из которых содержит регистр управления ЕРАх СОХ, 16-разрядный регистр времени события ЕРАх Т1МЕ и 16-разрядный буферный регистр МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСВ.ЕВ ЕРАх ВОР. Модуль может работать либо в режиме захвата, либо в режиме сравнения. В режиме захвата модуль, получив сигнал о каком-либо событии на вход ЕРАх (вывод Р1.х порта Р1 в режиме специальных функций), загружает текущее значение таймера, обслуживающего данный порт, в регистр ЕРАх Т1МЕ и вырабатывает запрос на прерывание ЕРАх 1ХТ.
Таким образом фиксируется время события. В режиме сравнения в регистр ЕРАх Т1 МЕ заносится число, определя!ощее требуемую длительность временного интервала. Когда содержимое таймера, обслуживающего данный модуль, становится равным этому числу, на выходе ЕРАх формируется сигнал об этом событии. Формат содержимого регистра управления ЕРАх СОХ приведен на рис. 1.22. 7 6 5 4 3 2 1 0 ТВ СЕ МОВЕ КЕ резерв КОТ ОХ/КТ а) ЕРА 0 СОХ (адрес 1Р80Н), ЕРА 2 СОХ (адрес ! Г88Н) 2 1 0 8 7 6 5 4 3 КМ ТВ СЕ МОРЕ КЕ резерв КОТ ОХ/КТ б) ЕРА 1 СОХ (адрес 1Р84Н), ЕРА 3 СОХ (адрес !Р8СН) Рис.
!.22. Формат регистров ЕРдхСОХ Разряд СЕ этого регистра устанавливает режим функционирования модуля: режим захвата при СЕ - 1, режим сравнения при СЕ - О. Разряд ТВ определяет выбор базового таймера, задающего длительность временных интервалов: таймер 1 при ТВ - О, таймер 2 при ТВ - 1. Функции остальных разрядов ЕРАх СОХ зависят от режима работы модуля. В режиме захвата разряд ОХ/КТ определяет функционирование модуля в случаме переполнения, когда на входе ЕРАх зафиксировано новое событие при заполненных регистрах ЕРАх Т1МЕ, ЕРАх В()Е Если ОХ 1, то в регистр ЕРАх ВОР заносится новое содержимое таймера, если ОХ - О, то новое событие игнорируется. Разряд КОТ в режиме захвата производит сброс небазового таймера (не выбранного разрядом ТВ) при значении КОТ - 1. В режиме сравнения разряд КОТ выбирает, какой из таймеров будет сброшен в «О»: базовый при КОТ - О, небазовый при КОТ- 1.
В режиме сравнения разряд КТ разрешает (при КТ - 1) илн запрещает (при КТ - О) сброс таймера, выбранного разрядом КОТ. Разряд КЕ используется только в режиме сравнения. В случае КЕ " 0 при совпадении содержимого таймера и регистра ЕРАх МИКРОКОНТРОЛЛЕРЫ. АРХИТЕКТУРА ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙС 7г Т1МЕ вырабатывается сигнал на выходе ЕРАх и функционирование модуля прекращается (формирование одиночного выходного сигнала). Для возобновления функционирования модуля необходимо произвести новую загрузку содержимого ЕРАх Т1МЕ. В случае йЕ 1 сигнал на выходе ЕРАх вырабатывается при каждом совпадении содержимых таймера и ЕРАх Т1МЕ (формирование последовательности выходных сигналов).
Поле МОРЕ определяет вид входных сигналов, вызывающих захват, и выходных сигналов, формируемых после сравнения (табл.1.20). Захват может происходить при поступлении на вход ЕРАх либо положительного, либо отрицательного фронта сигнала, либо при поступлении любого из них. В режиме сравнения при совпадении содержимого таймера и регистра ЕРАх Т1МЕ на выходе ЕРАх может установиться значение «О», «1» или произойти инвертирование ранее установленного значения. Регистры ЕРА 1 СОМ, ЕРА 3 СОМ модулей ЕРА 1, ЕРА 3 имеют дополнительный бит ЕМ (рис. 1.226), который должен иметь значение КМ - 1, если эти модули используются в модифицированном режиме генерации импульсов с помощью периферийного сервера (см.
раздел 1.4). Таким образом, эти регистры являются 9-разрядными (двухбайтными). Табл. 1.20. Вид сигналов захвата и сравнения в зависимости от поля МООЕ регистров ЕРДхСОМ Функционирование ПРС в режиме захвата происходит следующим образом. При поступлении соответствующего фронта сигнала на вход ЕРАх текущее содержимое таймера, обслуживающего данный модуль ПРС, заносится («захватывается») в буферный регистр ЕРАх ВПЕ Если при этом регистр ЕРАх Т1МЕ пуст (не содержит времени предыдущего захвата), то содержимое таймера из ЕРАх В1)Р записывается в регистр ЕРАх Т1МЕ. Одновременно с записью выдается запрос прерывания ЕРАх, который обрабатывается контроллером прерываний или периферийным сервером в соответствии с их приоритетом (см, раздел 1.4). Если на этот же вход ЕРАх поступает сигнал о следующем событии, то соответствующее содержимое МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСЕ.ЕЕ 73 таймера заносится в регистр ЕРАх ВУР и сохраняется в нем до тех пор, пока не произойдет считывание содержимого регистра ЕРАх Т1 МЕ.
После считывания содержимое ЕРАх В()Г заносится в ЕРАх Т1МЕ, при этом выдается запрос прерывания ЕРАх. Если сигнал о новом событии поступает на вход ЕРАх до того, как произойдет считывание содержимого ЕРАх Т1МЕ, то происходит переполнение соответствующего модуля ПРС.
В зависимости от значения разряда ОХ в регистре ЕРАх СОХ это новое событие либо игнорируется (ОХ = О), либо время этого события (содержимое таймера) заносится в регистр ЕРАх ВЩ замещая время предыдущего события. Переполнение того или иного модуля ПРС фиксируется в соответствующем разряде ОЧКх регистра состояния ЕРА ЯТАТ (рис. 1.23). Остальные четыре разряда этого регистра не используются (зарезервированы). Регистр маски ЕРА МАЯК (рис.
1.23) маскирует сигналы переполнения модулей ПРС, если в соответствующем разряде регистра установлено значение ОУКх О. Если сигналы переполнения не маскированы (для них установлены значения ОЧКх - 1), то ПРС формирует запросы прерывания: ОЧКО-1 при переполнении в модуле 0 или 1, ОЧК2-3 при переполнении в модуле 2 или 3, 7 б 5 4 3 2 1 0 ЕРА МАЯК (адрес 1РЕСН), ЕРА ЯТАТ (адрес 1Р9ЕН) Рис. 1.23. Формат регистров ЕРА МАЕК и ЕРА ЗТАТ Обслуживание запросов прерывания ОУКТМК1, 2, ЕРАх, ОУК0-1, 2-3, поступающих от таймеров и ПРС, производится так же, как для других видов запросов (см. раздел 1А). Поступающие запросы фиксируются в соответствующих разрядах регистров 1ХТ РЕХ13, 1ХТ РЕХШ и могут маскироваться с помощью регистров 1ХТ МАЯК, 1ХТ МАЯК1.
Пользователь может использовать лтобые подпрограммы обслуживания, вызываемые с помощью КПР или осуществлять специальные процедуры, реализуемые с помощью ПСР При функционировании в режиме сравнения ПРС устанавливает на выходе ЕРАх заданный уровень сигнала «О» нли 616, когда содержимое таймера достигает значения, записанного в регистр ЕРАх Т1 МЕ. Таким образом, содержимое ЕРАх Т1МЕ определяет время формирования соответствующего сигнала (события) на выходе ЕРАх. Начальный уровень сигнала на этом микРОХОнтРОллеРы: АРхитектГРА ОРОГРАммиРОеАни интеРФейс 74 выходе устанавливается путем предварительной загрузки соответствующего значения разряда Р1.х в регистре Р1 КЕО (см.