Файл: Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 2831
Скачиваний: 1
Таймер B
Раздел XII.
MSP430x1xxFamily
MSP430x1xxFamily
Таймер В
Таймер В – это 16-разрядный таймер/счетчик со несколькими регистрами захвата/сравнения. В этом разделе описывается работа таймера В. Таймер В3 (с тремя регистрами захвата/сравнения) реализован в устройствах MSP430x13x и MSP430x15x. Таймер В7 (с семью регистрами захвата/сравнения) реализован в устройствах MSP430x14x и MSP430x16x.
12.1. Введение в таймер В
Таймер В – это 16-разрядный таймер/счетчик с тремя или семью регистрами захвата/сравнения. Таймер В может поддерживать несколько режимов захвата/сравнения, вывод ШИМ-сигналов и выдержку временных интервалов. Таймер В также имеет расширенные возможности прерываний. Прерывания могут быть сгенерированы при переполнении счетчика и от каждого из регистров захвата/сравнения.
Таймер В обладает следующими возможностями:
•Асинхронный 16-разрядный таймер/счетчик с четырьмя режимами работы и четырьмя настраиваемыми длительностями
•Выбираемые и конфигурируемые источники тактирования
•Три или семь конфигурируемых регистров захвата/сравнения
•Конфигурируемые выходы с возможностью ШИМ
•Защелки сравнения с двойной буферизацией и синхронизируемой загрузкой
•Регистр вектора прерывания для быстрого декодирования всех прерываний таймера В
Блок-схема таймера В показана на рис. 12-1.
Примечание: Использование слова «счет»
«Счет» используется везде в этом разделе. Это способ показать, что счетчик должен быть в процессе подсчета для выполняемого действия во взятом месте. Если в счетчик напрямую записывается конкретное значение, соответствующе действие не происходит.
12.1.1. Сходства и различия с таймером А
Таймер В идентичен таймеру А, но со следующими исключениями:
•Длина таймера В программируется и может составлять 8, 10, 12 или 16 бит
•Регистры TBCCRx таймера В имеют двойную буферизацию и могут группироваться
200 |
Библиотека Компэла |
|
Раздел XII. |
Таймер B |
|||||||||
TBSSELx |
IDx |
Тактирование таймера |
MCx |
Блок таймера |
||||||
150 |
||||||||||
TBCLK |
00 |
Делитель |
16•разрядный таймер |
Режим |
EQU0 |
|||||
TBR |
RC |
|||||||||
ACLK |
01 |
1/2/4/8 |
счета |
|||||||
Очистка |
8 |
10 12 16 |
||||||||
SMCLK |
10 |
CNTLx |
||||||||
11 |
||||||||||
TBCLGRPx |
TBCLR |
00 |
||||||||
01 |
Установка |
|||||||||
Логика загрузки |
10 |
TBIFG |
||||||||
11 |
||||||||||
группы |
||||||||||
CCR0 |
||||||||||
CCR1 |
||||||||||
CCR2 |
||||||||||
CCR3 |
||||||||||
CCR4 |
||||||||||
CCR5 |
||||||||||
CCISx |
CMx |
Logic |
COV |
CCR6 |
||||||
CCI6A |
SCS |
|||||||||
00 |
Режим |
150 |
||||||||
CCI6B |
01 |
захвата |
0 |
|||||||
TBCCR6 |
||||||||||
GND |
10 |
Тактирование |
||||||||
Синхр. |
1 |
|||||||||
VCC |
11 |
таймера |
Загрузка |
|||||||
CLLDx |
Логика |
|||||||||
CCI |
Защелка захвата TBCL6 |
|||||||||
загрузки |
||||||||||
VCC |
00 |
группы |
||||||||
Компаратор 6 |
||||||||||
TBR=0 |
01 |
CCR5 |
||||||||
EQU0 |
10 |
EQU6 |
||||||||
CCR4 |
CAP |
|||||||||
Вверх/вниз |
11 |
|||||||||
CCR1 |
||||||||||
0 |
Установка |
|||||||||
1 |
TBCCR6 CCIFG |
|||||||||
OUT |
||||||||||
Модуль |
D Set Q |
Сигнал OUT6 |
||||||||
EQU0 |
вывода 6 |
Тактирование |
||||||||
Reset |
||||||||||
таймера |
||||||||||
POR |
||||||||||
OUTMODx
Рис. 12-1. Блок-схема таймера В
•Все выходы таймера В могут быть переведены в третье (высокоимпедансное) состояние
•Функция бита SCCI не реализована в таймере В.
12.2.Работа таймера В
Модуль таймера В конфигурируется программным обеспечением пользователя. Настройка и работа таймера В рассматривается в следующих разделах
Библиотека Компэла |
201 |
|
MSP430x1xxFamily
12.2.1. 16-разрядный счетчик таймера
16-разрядный регистр таймера/счетчика TBR инкрементируется и декрементируется (в зависимости от режима работы) по каждому нарастающему фронту тактового сигнала. Регистр TBR может программно читаться и записываться. Помимо этого, таймер может генерировать прерывание при его переполнении.
Регистр TBR может быть очищен установкой бита TBCLR. Установка TBCLR также очищает делитель тактовой частоты и направление счета для режима «вверх/вниз».
Примечание: Модификация регистров таймера В
Рекомендуется останавливать таймер перед изменением режима работы (кроме операций с флагом прерывания и разрешения прерывания, и TBCLR) во избежание его ошибочной работы.
Когда TBCLK асинхронен тактовой частоте ЦПУ, любое чтение из TBR должно выполняться при неработающем таймере, в противном случае результат может оказаться непредсказуемым. Любая запись в TBR приведет к немедленному результату.
Длина TBR
Таймер В конфигурируется для работы в качестве 8, 10, 12 или 16-разряд- ного таймера с помощью битов CNTLx. Максимальное значение счета TBR(max) для выбранной длины соответственно составит 0FFh, 03FFh, 0FFFh и 0FFFFh. Данные, записанные в регистр TBR в 8-ми, 10-ти и 12-разрядном режиме выравниваются по правому знаку с нулями впереди.
Выбор источника тактирования и делитель
В качестве источников тактовой частоты TBCLK могут выступать ACLK, SMCLK или внешние сигналы, поступающие через TBCLK или INCLK. Источник тактирования выбирается битами TBSSELx. Выбранный источник тактирования может подключаться к таймеру напрямую или через делитель на 2, 4 или 8 с помощью битов IDx. Делитель TBCLK сбрасывается при установке бита TBCLR.
12.2.2. Старт таймера
Таймер может быть запущен или перезапущен следующими способами:
•Таймер считает, когда MCx > 0 и активен источник тактовых сигналов
•Когда таймер находится в режиме счета «вверх» или «вверх/вниз», его можно остановить загрузкой нуля в TBCL0. Таймер может быть тогда и перезапущен при загрузке ненулевого значения в TBCL0. В этом случае таймер начинает инкрементирование вверх от нуля.
202 |
Библиотека Компэла |
|
Раздел XII. |
Таймер B |
12.2.3. Управление режимом таймера
Таймер имеет четыре режима работы, описанных в таблице 12-1: «стоп», «вверх», «непрерывный» и «вверх/вниз». Рабочий режим выбирается с помощью битов MCx.
Таблица 12-1. Режимы таймера. |
|||
MCx |
Режим |
Описание |
|
00 |
Стоп |
Останов таймера |
|
01 |
Вверх |
Таймер многократно считает от нуля до значения в регистре сравне- |
|
ния TBCL0 |
|||
10 |
Непрерывный |
Таймер многократно считает от нуля до значения, выбранного бита- |
|
ми TBCNTLx. |
|||
11 |
Вверх/вниз |
Таймер многократно считает от нуля вверх до значения в TBCL0 и |
|
назад до нуля. |
|||
Режим «вверх»
Режим «вверх» используется, если период таймера должен быть отличен от количества отсчетов TBR(max). Таймер многократно считает вверх до значения в защелке сравнения TBCL0, которое определяет период, как показано на рис. 12-2. Количество отсчетов таймера в периоде равно TBCL0+1. Когда значение таймера равно TBCL0, таймер перезапускается на счет с нуля. Если режим «вверх» выбран, когда значение таймера больше чем в TBCL0, таймер немедленно перезапускается на отсчет с нуля.
TBR(max) |
TBCL0 |
0h |
Рис. 12-2. Режим «вверх» |
Флаг прерывания TBCCR0 CCIFG устанавливается, когда значение таймера равно значению TBCL0. Флаг прерывания TBIFG устанавливается, когда таймер пересчитывает от TBCL0 к нулю. На рис. 12-3 показан цикл установки флагов.
Изменение регистра периода TBCL0
При изменении TBCL0 во время работы таймера, когда TBCL0 находится в режиме непосредственной загрузки, если новый период больше старого или
Библиотека Компэла |
203 |
|