Файл: Семейство микроконтроллеров 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