В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Компоненты > Микроконтроллеры > MSP430 > Архитектура MSP430x1xx
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Таймер А

Таймер А – это 16-разрядный таймер/счетчик с тремя регистрами захвата/сравнения. В этом разделе описывается таймер А. Он реализован во всех устройствах MSP430x1xx.

11.1 Введение в таймер А

Таймер А – это 16-разрядный таймер/счетчик с тремя регистрами захвата/сравнения. Таймер А может обеспечить множество захватов/сравнений, выходов ШИМ и выдержку временных интервалов. Таймер А также имеет обширные возможности прерывания. Прерывания могут быть сгенерированы от счетчика при переполнении и от каждого из регистров захвата/сравнения.

  • Таймер А обладает следующими возможностями:
  • Асинхронный 16-разрядный таймер/счетчик с четырьмя режимами работы;
  • Выбираемый и конфигурируемый источник тактирования;
  • Три конфигурируемых регистра захвата/сравнения;
  • Конфигурируемые выходы с возможностью ШИМ;
  • Асинхронная фиксация (защелка) входа и выхода;
  • Регистр вектора прерываний для быстрого декодирования всех прерываний таймера А.

Блок-схема таймера А показана на рис. 11-1.

Примечание: Использование слова «счет»
«Счет» используется везде в этом разделе. Это способ показать, что счетчик должен быть в процессе подсчета для выполняемого действия. Если в счетчик напрямую записывается конкретное значение, соответствующе действие не происходит.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Блок-схема таймера А
Рис.11-1 Блок-схема таймера А

11.2 Функционирование таймера А

Модуль таймера А конфигурируется программным обеспечением пользователя. Настройка и работа таймера А рассматриваются в нижеследующих разделах.

11.2.1 16-разрядный таймер-счетчик

Регистр 16-разрядного таймера/счетчика TAR, инкрементируется или декрементируется (в зависимости от режима работы) с каждым нарастающим фронтом тактового сигнала. TAR может быть программно прочитан и записан. Кроме того, таймер может генерировать прерывание при переполнении. TAR можно очистить установкой бита TACLR. Установка TACLR также очищает делитель тактовой частоты и направление счета для режима вверх/вниз.

Примечание: Изменение регистров таймера А Рекомендуется останавливать таймер перед изменением режима его работы (за исключением операций с флагом прерывания и разрешения прерывания), чтобы предотвратить его некорректную работу. Когда сигнал TACLK асинхронен с сигналом тактирования ЦПУ, любое чтение из TAR должно происходить, когда таймер не работает, в противном случае результаты могут быть непредсказуемы. Любая запись в TAR приведет к немедленному результату.

Выбор источника тактирования и делитель

Тактирование таймера TACLK может производиться от ACLK, SMCLK или от внешнего источника через TACLK или INCLK. Источник тактовых импульсов выбирается с помощью битов TASSELx. Выбранный источник тактирования может быть подключен к таймеру напрямую или через делитель на 2, 4 или 8 с помощью битов IDx.

11.2.2 Запуск таймера

Таймер может быть запущен или перезапущен следующими способами:

  • Таймер считает, когда MCx > 0 и источник тактовых импульсов активен
  • Когда таймер в режиме «вверх» или «вверх/вниз», он может быть остановлен путем записи 0 в TACCR0. Затем таймер может быть перезапущен путем записи ненулевого значения в TACCR0. В этом случае таймер начинает инкрементироваться от нуля.

11.2.3 Управление режимом таймера

Таймер имеет четыре режима работы, описанных в таблице 11-1: «стоп», «вверх», «непрерывный» и «вверх/вниз». Режимы работы выбираются с помощью битов MCx.

Таблица 11-1. Режимы таймера.

MCx Режим Описание
00 Стоп Останов таймера
01 Вверх Таймер многократно считает от нуля до значения в TACCR0
10 Непрерывный Таймер многократно считает от нуля до значения 0FFFFh
11 Вверх/вниз Таймер многократно считает от нуля вверх до значения в TACCR0 и назад до нуля.

Режим «Вверх»

Режим «вверх» используется, если период таймера должен отличаться от количества отсчетов 0FFFFh. Таймер многократно считает вверх до значения, содержащегося в регистре сравнения TACCR0, который задает период, как показано на рис.11-2. Количество отсчетов таймера в периоде равно TACCR0+1. Когда значение таймера становится равно содержимому TACCR0, таймер перезапускается, начиная счет от нуля. Если режим «вверх» выбран, когда значение таймера больше содержимого TACCR0, таймер немедленно перезапускается, начиная считать от нуля.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.11-2 Режим «Вверх»

Флаг прерывания TACCR0 CCIFG устанавливается, когда значение таймера равно содержимому TACCR0. Флаг прерывания TAIFG устанавливается, когда таймер считает от TACCR0 к нулю. На рис.11-3 показан цикл установки флагов.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.11-3 Установка флагов в режиме «Вверх»

Изменение регистра периода TACCR0

Когда изменяется TACCR0 во время работы таймера, таймер продолжает отсчет вверх до новой границы периода, если новый период больше или равен старому или больше текущего значения счета. Если новый период меньше величины текущего значения счета, таймер обнуляется. Однако до обнуления счетчика может произойти один дополнительный отсчет.

Непрерывный режим

В непрерывном режиме таймер многократно считает вверх до 0FFFFh и перезапускается от нуля, как показано на рис.11-4. Регистр захвата/сравнения TACCR0 работает подобно другим регистрам захвата/сравнения.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.11-4 Непрерывный режим

Флаг прерывания TAIFG устанавливается, когда таймер считает от 0FFFFh к нулю. На рис.11-5 показан цикл установки флага.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.11-5 Установка флага в непрерывном режиме

Использование непрерывного режима

Непрерывный режим может использоваться для генерации независимых временных интервалов и выходных частот. Каждый раз по завершении интервала генерируется прерывание. Следующий временной интервал добавляется к регистру TACCRx в процедуре обработки прерывания. На рис.11-6 показаны два раздельных временных интервала t0 и t1, добавляемые к регистрам захвата/сравнения. При таком использовании временные интервалы управляются аппаратно, без программного обеспечения, без влияния времени задержки прерывания. При использовании всех трех регистров захвата/сравнения можно сгенерировать до трех независимых временных интервалов или выходных частот.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.11-6 Временные интервалы непрерывного режима

Временные интервалы можно реализовать также в других режимах, где TACCR0 используется как регистр периода. Их обработка более комплексна, поскольку сумма старого значения TACCRx и нового периода может быть выше значения TACCR0. Когда предыдущее значение TACCRx плюс tx больше величины TACCR0, значение TACCR0 должно быть вычтено для получения правильного временного интервала.

Режим «вверх/вниз»

Режим «вверх/вниз» используется, если период таймера должен отличаться от значения 0FFFFh и необходима генерация симметричных импульсов. Таймер непрерывно считает вверх до значения, находящегося в регистре сравнения TACCR0 и назад к нулю, как показано на рис.11-7. Период составляет удвоенную величину значения в TACCR0.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.11-7 Режим «вверх/вниз»

Направление счета запоминается. Это позволяет таймеру останавливаться и запускаться в том же направлении отсчета, которое было до останова. Если это нежелательно, для очистки направления нужно установить бит TACLR. Бит TACLR также очищает значения в TAR и в делителе TACLK.

В режиме «вверх/вниз» флаг прерывания TACCR0 CCIFG и флаг прерывания TAIFG устанавливаются только однажды во время периода, разделяясь 1/2 периода таймера. Флаг прерывания TACCR0 CCIFG устанавливается, когда таймер считает от TACCR0-1 к TACCR0, а флаг TAIFG устанавливается, когда таймер завершает счет вниз от 0001h к 0000h. На рис.11-8 показан цикл установки флагов.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.11-8 Установка флагов в режиме вверх/вниз

Изменение регистра периода TACCR0

При изменении TACCR0 во время работы таймера и счете вниз, таймер продолжает счет до нуля. Новый период начинает действовать после завершения отсчета вниз до нуля.

Когда таймер выполняет отсчет вверх и новый период больше или равен старому периоду или же больше текущего отсчитанного значения, таймер считает вверх до конца нового периода перед отсчетом вниз. Когда же таймер производит отсчет вверх, а величина нового периода меньше текущего отсчитанного значения, таймер начинает считать вниз. Однако может произойти один дополнительный отсчет до начала счета вниз.

Использование режима вверх/вниз

Режим «вверх/вниз» поддерживает приложения, требующие наличия «мертвого» времени между выходными сигналами (см. раздел «Модуль вывода Таймера А»). К примеру, чтобы избежать перегрузки, два выхода, управляющие H-мостом никогда не должны одновременно иметь высокий уровень. В примере, показанном на рис.11-9 величина времени простоя tdead составляет:

    tdead = ttimer * (TACCR1 – TACCR2), где:
    tdead – интервал времени, в течение которого оба выхода должны быть неактивны
    ttimer – время цикла тактирования таймера
    TACCRx – содержимое регистра захвата/сравнения x

Регистры TACCRx не буферизированы. Когда в них производится запись, они немедленно модифицируются. Поэтому, любое требуемое «мертвое» время не будет поддерживаться автоматически.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.11-9 Модуль вывода в режиме «вверх/вниз»

11.2.4 Блоки захвата/сравнения

В таймере А представлено три одинаковых блока захвата/сравнения TACCRx. Любой из блоков может быть использован для фиксации (захвата) данных таймера или для генерации временных интервалов.

Режим захвата

Режим захвата выбирается, когда CAP=1. Режим захвата используется для регистрации временных событий. Это может потребоваться для быстрых вычислений или для измерения времени. Входы захвата CCIxA и CCIxB подключаются к внешним выводам или к внутренним сигналам и выбираются с помощью битов CCISx. Биты CMx определяют, как будет происходит захват: по фронту входного сигнала, по его спаду или в обоих случаях. Захват происходит по выбранному фронту входного сигнала. Если захват произошел, тогда:

  • Значение таймера копируется в регистр TACCRx
  • Устанавливается флаг прерывания CCIFG

Уровень входного сигнала может быть прочитан в любое время через бит CCI. К входам CCIxA и CCIxB в устройствах семейства MSP430x1xx могут подключаться различные сигналы. См. справочное руководство конкретного устройства для выяснения особенностей подключения этих сигналов.

Сигнал захвата может быть асинхронен тактовой частоте таймера и вызывать состояние гонки сигналов. Установка бита SCS будет синхронизировать захват со следующим тактовым импульсом таймера. Рекомендуется устанавливать бит SCS для синхронизации сигнала захвата с тактовыми импульсами таймера. Это иллюстрируется на рис.11-10.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.11-10 Сигнал захвата (SCS=1)

Логика переполнения предусмотрена в каждом регистре захвата/сравнения для индикации в случае, если произошел второй захват перед прочтением значения первого захвата. Когда это происходит, устанавливается бит COV, как показано на рис.11-11. Бит COV должен сбрасываться программно.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.11-11 Цикл захвата

Инициирование захвата программным обеспечением

Захваты могут быть инициированы программно. Биты CMx могут быть установлены для выполнения захвата по обоим фронтам. В этом случае программное обеспечение устанавливает CCIS1=1 и переключает бит CCISO для переключения сигнала захвата между VCC и GND, инициируя захват каждый раз, когда CCISO изменяет состояние:

    MOV #CAP+SCS+CCIS1+CM_3,&TACCTLx      ; Настройка TACCTLx
    XOR #CCIS0,&TACCTLx                   ; TACCTLx = TAR
    
Примечание: Разнногласие с официальной документацией
На взгляд общественности с конфиренции «Микроконтроллеры и их применение» здесь в описании что-то не то:
Перевод. Раздел "Таймер А", подраздел
"Инициирование захвата программным обеспечением".
Читаем:
Захваты могут быть инициированы программно. Биты CMx могут быть установлены для выполнения захвата по обоим фронтам. В этом случае программное обеспечение устанавливает CCI=1 и переключает бит CCISO для переключения сигнала захвата между VCC и GND, инициируя захват каждый раз, когда CCISO изменяет состояние...

Но бит CCI read only! Значит, софт его поставить не могет.(Да и правильно, иначе есть опасность столкновения сигналов, см. Блок-схему).
В английском оригинале аналогично. Переводчик не ошибся.

Но нужно не CCI ставить, а CCIS1.
Об этом говорит и рядомрасположенный ассемблерный пример, и аналогичный фрагмент в описании Таймера В. Там не CCI ставится, а CCIS1.

Режим сравнения

Режим сравнения выбирается, когда CAP=0. Режим сравнения используется для генерации выходных ШИМ-сигналов или прерываний через конкретные временные интервалы. Когда TAR досчитывает до значения в TACCRx, происходит следующее:

  • Устанавливается флаг прерывания CCIFG
  • Внутренний сигнал EQU=1
  • EQUx воздействует на выход согласно режиму вывода
  • Входной сигнал CCI фиксируется в SCCI

11.2.5 Модуль вывода

Каждый блок захвата/сравнения содержит модуль вывода. Модуль вывода используется для генерации выходных сигналов, в т.ч. таких, как ШИМ-сигналы. Каждый модуль вывода имеет восемь рабочих режимов, которые генерируют сигналы, основываясь на сигналах EQU0 и EQUx.

Режимы вывода

Режимы вывода устанавливаются битами OUTMODx, их описание приведено в таблице 11-2. Сигнал OUTx изменяется с нарастающим фронтом тактового сигнала таймера во всех режимах, кроме режима 0. Режимы вывода 2, 3, 6 и 7 не используются для модуля вывода 0, потому что EQUx=EQU0.

Таблица 11-2. Режимы вывода.

OUTMODx Режим Описание
000 Вывод Выходной сигнал OUTx определяется битом OUTx. Сигнал OUTx изменяется немедленно при изменении OUTx.
001 Установка Выход устанавливается, когда таймер досчитывает до значения в TACCRx. Он остается установленным до сброса таймера или до выбора другого режима вывода и воздействия на выход.
010 Переключение/Сброс Выход переключается, когда таймер досчитывает до значения TACCRx. Он сбрасывается, когда таймер досчитывает до значения TACCR0.
011 Установка/Сброс Выход устанавливается, когда таймер досчитывает до значения TACCRx. Он сбрасывается, когда таймер досчитывает до значения TACCR0.
100 Переключение Выход переключается, когда таймер досчитывает до значения TACCRx. Период выходного сигнала равен удвоенному периоду таймера.
101 Сброс Выход сбрасывается, когда таймер досчитывает до значения TACCRx. Это остается сброшенным до выбора другого режима вывода и воздействия на выход.
110 Переключение/Установка Выход переключается, когда таймер досчитывает до значения TACCRx. Он устанавливается, когда таймер досчитывает до значения TACCR0.
111 Сброс/Установка Выход сбрасывается, когда таймер досчитывает до значения TACCRx. Он устанавливается, когда таймер досчитывает до значения TACCR0.

Пример вывода – таймер в режиме «вверх»

Сигнал OUTx изменяется, когда таймер досчитывает вверх до значения TACCRx и обратно от TACCR0 к нулю, в зависимости от режима вывода. Пример с использованием TACCR0 и TACCR1 показан на рис.11-12.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.11-12 Пример вывода – таймер в режиме «вверх»

Пример вывода – таймер в непрерывном режиме

Сигнал OUTx изменяется, когда таймер достигает значений TACCRx и TACCR0, в зависимости от режима вывода. Пример с использованием TACCR0 и TACCR1 показан на рис.11-13.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.11-13 Пример вывода – таймер в непрерывном режиме

Пример вывода – таймер в режиме «вверх/вниз»

Сигнал OUTx изменяется, когда таймер становится равным TACCRx в каждом направлении счета, а также когда таймер равен TACCR0, в зависимости от режима вывода. Пример с использованием TACCR0 и TACCR2 показан на рис.11-14.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.11-14 Пример вывода – таймер в режиме «вверх/вниз»

Примечание: Переключение между режимами вывода
При переключении между режимами вывода один из битов OUTMODx должен оставаться установленным во время перехода, кроме переключения в режим 0. В противном случае может произойти сбой, поскольку режим вывода 0 декодирует элемент NOR (НЕ-ИЛИ). Безопасный метод переключения между режимами вывода заключается в использовании режима вывода 7 как переходного состояния:

BIS #OUTMOD_7,&TACCTLx ; Установка режима вывода 7
BIC #OUTMODx,&TACCTLx ; Очистка лишних битов

11.2.6 Прерывания Таймера А

С 16-разрядным модулем таймера А связаны два вектора прерываний:

  • Вектор прерывания TACCR0 для TACCR0 CCIFG
  • Вектор прерывания TAIV для всех других флагов CCIFG и TAIFG

В режиме захвата любой флаг CCIFG устанавливается, когда значение таймера зафиксировано в соответствующем регистре TACCRx. В режиме сравнения устанавливается любой флаг CCIFG, если TAR досчитал до соответствующего значения TACCRx. Программное обеспечение может также устанавливать или очищать любой флаг CCIFG. Все флаги CCIFG запрашивают прерывание, когда установлены их соответствующие биты CCIE и бит GIE.

Прерывание TACCR0

Флаг TACCR0 CCIFG обладает наивысшим приоритетом прерывания Таймера А и имеет специализированный вектор прерывания, как показано на рис.11-15. Флаг TACCR0 CCIFG автоматически сбрасывается, когда обслуживается запрос на прерывание TACCR0.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments
Рис.11-15 Флаг прерывания захвата/сравнения TACCR0

Генератор вектора прерывания TAIV

Флаги TACCR1 CCIFG, TACCR2 CCIFG и TAIFG распределены по приоритетам и объединены в источник одного вектора прерывания. Регистр вектора прерывания TAIV используется для определения, какой флаг запросил прерывание.

Разрешенное прерывание с наивысшим приоритетом генерирует число в регистре TAIV (см. описание регистра). Можно оценить это число или добавить его к программному счетчику для автоматического входа в соответствующую программную процедуру. Запрещенные прерывания Таймера А не воздействуют на значение TAIV.

Любое обращение - чтение или запись регистра TAIV - автоматически сбрасывает флаг наивысшего ожидающего прерывания. Если установлен другой флаг прерывания, будет немедленно сгенерировано другое прерывание после обработки начального прерывания. Например, если флаги TACCR1 и TACCR2 CCIFG установлены, когда процедура обработки прерывания обращается к регистру TAIV, флаг TACCR1 CCIFG автоматически сбрасывается. После выполнения команды RETI процедуры обработки прерывания, флаг TACCR2 CCIFG генерирует другое прерывание.

Пример программного обеспечения, использующего TAIV

Приведенный далее пример программного обеспечения показывает рекомендуемое использование TAIV и величину издержек на управление. Значение TAIV добавляется к программному счетчику РС для автоматического перехода к соответствующей программной процедуре.

Числа в правом поле показывают необходимое количество циклов ЦПУ для каждой команды. Программные издержки различных источников прерывания включают задержки прерывания и циклы возврата из прерывания, но не учитывают собственно время обработки задачи. Задержки делятся на:

    Блок захвата/сравнения TACCR0               11 циклов
    Блоки захвата/сравнения TACCR1, TACCR2      16 циклов
    Переполнение таймера TAIFG                  14 циклов
    
    
    ;   Обработчик прерывания для TACCR0 CCIFG.                                 Циклы
    CCIFG_0_HND
    ;                   ; Начало времени задержки обработчика прерывания          6
    RETI                                                                          5
    ; Обработчик прерывания для TAIFG, TACCR1 и TACCR2 CCIFG.
    TA_HND              ; Задержка прерывания                                     6
    ADD &TAIV,PC        ; Добавление смещения к таблице переходов                 3
    RETI                ; Вектор 0: Нет прерывания                                5
    JMP CCIFG_1_HND     ; Вектор 2: TACCR12
    JMP CCIFG_2_HND     ; Вектор 4: TACCR2                                        2
    RETI                ; Вектор 6: Зарезервировано                               5
    RETI                ; Вектор 8: Зарезервировано                               5
    
    TAIFG_HND           ; Вектор 10: Флаг TAIFG
    ...                 ; Задача стартует здесь
    RETI                                                                          5
    CCIFG_2_HND         ; Вектор 4: TACCR2
    .                   ; Задача стартует здесь
    RETI                ; Возврат к главной программе                             5
    CCIFG_1_HND         ; Вектор 2: TACCR1
    ..                  ; Задача стартует здесь
    RETI                ; Возврат к главной программе                             5
    

11.3 Регистры Таймера А

Перечень регистров Таймера А приведен в таблице 11-3.

Таблица 11-1. Регистры Таймера А.

Регистр Краткое
обозначение
Тип
регистра
Адрес Исходное
состояние
Управление Таймером А TACTL Чтение/запись 0160h Сброс с POR
Счетчик Таймера А TAR Чтение/запись 0170h Сброс с POR
Регистр 0 управления захватом/сравнением Таймера А TACCTL0 Чтение/запись 0162h Сброс с POR
Регистр 0 захвата/сравнения Таймера А TACCR0 Чтение/запись 0172h Сброс с POR
Регистр 1 управления захватом/сравнением Таймера А TACCTL1 Чтение/запись 0164h Сброс с POR
Регистр 1 захвата/сравнения Таймера А TACCR1 Чтение/запись 0174h Сброс с POR
Регистр 2 управления захватом/сравнением Таймера А TACCTL2 Чтение/запись 0166h Сброс с POR
Регистр 2 захвата/сравнения Таймера А TACCR2 Чтение/запись 0176h Сброс с POR
Вектор прерывания Таймера А TAIV Только чтение 012Eh Сброс с POR

TACTL, регистр управления Таймером А

15 14 13 12 11 10 9 8
Не используется TASSELx
rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0)


7 6 5 4 3 2 1 0
IDx MCx Не исполь
зуется
TACLR TAIE TAIFG
rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) w-(0) rw-(0) rw-(0)


Не используются Биты
15-10
Не используются
TASSELx Биты 9-8 Выбор источника тактирования Таймера А
00  TACLK
01  ACLK
10  SMCLK
11  INCLK
IDx Биты 7-6 Входной делитель. Эти биты позволяют выбрать коэффициент деления для входной тактовой частоты.
00  /1
01  /2
10  /4
11  /8
MCx Биты 5-4 Выбор режима. Установка MCx=00h, когда Таймер А не используется, позволяет уменьшить потребляемую мощность.
00  Режим остановка: таймер остановлен
01  Режим «вверх»: таймер считает вверх к TACCR0
10  Непрерывный режим: таймер считает вверх к 0FFFFh
11  Режим «вверх/вниз»: таймер считает вверх к TACCR0, затем вниз к 0000h
Не используется Бит 3 Не используется
TACLR Бит 2 Очистка Таймера А. Установка этого бита сбрасывает TAR, IDx и выбранное направление счета. Бит TACLR автоматически сбрасывается и всегда читается как нуль.
TAIE Бит 1 Разрешение прерывания от Таймера А. Этот бит разрешает запрос прерывания TAIFG.
0  Запрещение прерывания
1  Разрешение прерывания
TAIFG Бит 0 Флаг прерывания Таймера А
0  Прерывание не ожидается
1  Ожидается прерывание

TAR, регистр Таймера А

15 14 13 12 11 10 9 8
TARx
rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0)


7 6 5 4 3 2 1 0
TARx
rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0)


TARx Биты
15-0
Регистр Таймера А. Регистр TAR является счетчиком Таймера А.

TACCTLx, регистр управления захватом/сравнением

15 14 13 12 11 10 9 8
CMx CCISx SCS SCCI Не исполь
зуется
CAP
rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) r-(0) r-(0) rw-(0)


7 6 5 4 3 2 1 0
OUTMODx CCIE CCI OUT COV CCIFG
rw-(0) rw-(0) rw-(0) rw-(0) r rw-(0) rw-(0) rw-(0)


CMx Биты
15-14
Режим захвата
00  Нет захвата
01  Захват по нарастающему (переднему) фронту
10  Захват по заднему фронту
11  Захват как по переднему, так и по заднему фронтам
CCISx Биты
13-12
Выбор входа захвата/сравнения. Этими битами выбирается входной сигнал TACCRx. См. справочное руководство конкретного устройства для выяснения подробностей подключения сигналов.
00  CCIxA
01  CCIxB
10  GND
11  VCC
SCS Бит 1 Синхронизация источника захвата. Этот бит используется для синхронизации входного сигнала захвата с тактовым сигналом таймера.
0  Асинхронный захват
1  Синхронный захват
SCCI Бит 10 Синхронизация входа захвата/сравнения. Выбранный входной сигнал CCI фиксируется по сигналу EQUx и может быть прочитан через этот бит.
Не используется Бит 9 Не используется. Только читается. Всегда читается как 0.
CAP Бит 8 Режим захвата.
0  Режим сравнения
1  Режим захвата
OUTMODx Биты 7-5 Режим вывода. Режимы 2, 3, 6 и 7 не используются для TACCR0, поскольку EQUx=EQU0.
000  Значение бита OUT
001  Установка
010  Переключение/сброс
011  Установка/сброс
100  Переключение
101  Сброс
110  Переключение/установка
111  Сброс/установка
CCIE Бит 4 Разрешение прерывания по захвату/сравнению. Этот бит разрешает запрос прерывания от соответствующего флага CCIFG.
0  Запрещение прерывания
1  Разрешение прерывания
CCI Бит 3 Вход захвата/сравнения. Выбранный входной сигнал может быть прочитан этим битом.
OUT Бит 2 Выход. Этот бит указывает состояние выхода. Если выбран режима вывода 0, этот бит напрямую управляет состоянием выхода.
0  Низкий уровень выхода
1  Высокий уровень выхода
COV Бит 1 Переполнение захвата. Этот бит указывает, что произошло переполнение захвата. Бит COV должен быть сброшен программно
0  Переполнения захвата не произошло
1  Произошло переполнение захвата
CCIFG Бит 0 Флаг прерывания захвата/сравнения
0  Прерывание не ожидается
1  Ожидается прерывание

TAIV, регистр вектора прерывания таймера А

15 14 13 12 11 10 9 8
0 0 0 0 0 0 0 0
r0 r0 r0 r0 r0 r0 r0 r0


7 6 5 4 3 2 1 0
0 0 0 0 TAIVx 0
r0 r0 r0 r0 r-(0) r-(0) r-(0) r0


TARx Биты
15-0
Значение вектора прерывания таймера А


Содержимое TAIV Источник прерывания Флаг
прерывания
Приоритет
прерывания
00h Прерывание не ожидается -  
02h Захват/сравнение 1 TACCR1 CCIFG Высший
04h Захват/сравнение 2 TACCR2 CCIFG  
06h Зарезервировано -  
08h Зарезервировано -  
0Ah Переполнение таймера TAIFG  
0Ch Зарезервировано -  
0Eh Зарезервировано - Низший


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