Файл: Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.06.2025

Просмотров: 2827

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Раздел XII.

Таймер B

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

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

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

OUTMODx

Режим

Описание

Выходной сигнал OUTx определяется битом OUTx.

000

Вывод

Сигнал OUTx изменяется немедленно при изменении

OUTx.

Выход устанавливается, когда таймер досчитывает

001

Установка

до значения в TBCLx. Он остается установленным до

сброса таймера или до выбора другого режима выво-

да и воздействия на выход.

Выход переключается, когда таймер досчитывает

010

Переключение/сброс

до значения TBCLx. Он сбрасывается, когда таймер

досчитывает до значения TBCL0.

Выход устанавливается, когда таймер досчитывает

011

Установка/сброс

до значения TBCLx. Он сбрасывается, когда таймер

досчитывает до значения TBCL0.

Выход переключается, когда таймер досчитывает до

100

Переключение

значения TBCLx. Период выходного сигнала равен

удвоенному периоду таймера.

Выход сбрасывается, когда таймер досчитывает до

101

Сброс

значения TBCLx. Он остается сброшенным до выбора

другого режима вывода и воздействия на выход.

Выход переключается, когда таймер досчитывает до

110

Переключение/установка

значения TBCLx. Он устанавливается, когда таймер

досчитывает до значения TBCL0.

Выход сбрасывается, когда таймер досчитывает до

111

Сброс/установка

значения TBCLx. Он устанавливается, когда таймер

досчитывает до значения TBCL0.

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

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

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

Сигнал OUTx изменяется, когда таймер достигает значений TBCLx и TBCL0, в зависимости от режима вывода. Пример с использованием TBCL0 и TBCL1 показан на рис. 12-13.

Библиотека Компэла

211


MSP430x1xxFamily

TBR(max)

TBCL0

TBCL1

0h

Режим вывода 1: Установка

Режим вывода 2: Переключение/Сброс

Режим вывода 3: Установка/Сброс

Режим вывода 4: Переключение

Режим вывода 5: Сброс

Режим вывода 6: Переключение/Установка

Режим вывода 7: Сброс/Установка

EQU0

EQU1

EQU0

EQU1

EQU0

События, вызывающие

TBIFG

TBIFG

TBIFG

прерывание

Рис. 12-12. Пример вывода – таймер в режиме «вверх»

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

Сигнал OUTx изменяется, когда таймер равен TBCLx при любом направлении счета, либо когда таймер равен TBCL0, в зависимости от режима вывода. Пример с использованием TBCL0 и TBCL3 показан на рис. 12-14.

Примечание: Переключение между режимами вывода

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

BIS

#OUTMOD_7,&TBCCTLx

;Установка режима

вывода =7

BIC

#OUTMODx,&TBCCTLx

;Очистка ненужных

битов

212

Библиотека Компэла


Раздел XII.

Таймер B

TBR(max)

TBCL0

TBCL1

0h

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

Установка

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

Переключение/Сброс

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

Установка/Сброс

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

Переключение

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

Сброс

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

Переключение/Установка

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

Сброс/Установка

TBIFG

EQU1

EQU0

TBIFG

EQU1

EQU0

События, вызывающие

прерывания

Рис. 12-13. Пример вывода – таймер в «непрерывном» режиме

12.2.6.Прерывания Таймера В

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

Вектор прерывания TBCCR0 для TBCCR0 CCIFG

Вектор прерывания TBIV для всех других флагов CCIFG и TBIFG

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

Вектор прерывания TBCCR0

Флаг TBCCR0 CCIFG обладает наивысшим приоритетом прерывания Таймера B и имеет специализированный вектор прерывания, как показано на

Библиотека Компэла

213


MSP430x1xxFamily

TBR(max)

TBCL0

TBCL3

0h

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

Установка

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

Переключение/Сброс

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

Установка/Сброс

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

Переключение

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

Сброс

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

Переключение/Установка

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

Сброс/Установка

EQU3

EQU3

EQU3

EQU3

TBIFG

EQU0

TBIFG

EQU0

События, вызывающие

прерывание

Рис. 12-14. Пример вывода – таймер в режиме «вверх/вниз»

рис. 12-15. Флаг TBCCR0 CCIFG автоматически сбрасывается, когда обслуживается запрос на прерывание TBCCR0.

Захват

EQU0

D

Set

CAP

Q

Тактирование

Reset

таймера

CCIE

IRQ, запрос обработки

прерывания

IRACC, прием запроса

POR

на прерывание

Рис. 12-15. Флаг прерывания TBCCR0 захвата/сравнения

214

Библиотека Компэла