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

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

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

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

Добавлен: 16.06.2025

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

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

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

Раздел XII.

Таймер B

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

Флаг TBIFG и флаги TBCCRx CCIFG (кроме TBCCR0 CCIFG) распределены по приоритетам и объединены в источник одного вектора прерывания. Регистр вектора прерывания TBIV используется для определения, какой флаг запросил прерывание.

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

Любой тип доступа: чтение или запись регистра TBIV автоматически сбрасывает флаг наивысшего ожидающего прерывания. Если установлен другой флаг прерывания, будет немедленно сгенерировано другое прерывание после обработки изначального прерывания. К примеру, если флаги TBCCR1 и TBCCR2 CCIFG установлены, когда процедура обработки прерывания обращается к регистру TBIV, флаг TBCCR1 CCIFG автоматически сбрасывается. После выполнения команды процедуры обработки прерывания RETI, флаг TBCCR2 CCIFG генерирует другое прерывание.

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

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

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

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

11 циклов

• Блоки захвата/сравнения с CCR1 по CCR6

16 циклов

• Переполнение таймера TBIFG

14 циклов

Следующий пример программного обеспечения показывает рекомендуемое использование TBIV для таймера В3:

;Обработчик прерывания для TBCCR0 CCIFG.

Циклы

СCIFG_0_HND

;Начало времени задержки обработчика прерывания 6

...

RETI

5

;Обработчик прерывания для TBIFG, TBCCR1 и TBCCR2 CCIFG.

6

TB_HND

$

;Задержка прерывания

ADD &TBIV,PC ;Добавление смещения к таблице переходов 3

RETI

;Вектор 0: Нет прерывания

5

JMP CCIFG_1_HND ;Вектор 2: Модуль 1

2

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

215


MSP430x1xxFamily

JMP CCIFG_2_HND ;Вектор 4: Модуль 2

2

RETI

;Вектор 6

RETI

;Вектор 8

RETI

;Вектор 10

RETI

;Вектор 12

TBIFG_HND

;Вектор 14: Флаг TIMOV

...

;Задача стартует здесь

5

RETI

;Вектор 4: Модуль 2

CCIFG_2_HND

...

;Задача стартует здесь

5

RETI

;Назад к главной программе

;Модуль 1 обработчика позволяет узнать,

;что ожидается любое другое прерывание:

;на это тратится 5 циклов, но 9 циклов можно

CCIFG_1_HND

;сэкономить, если ожидается другое прерывание

;Вектор 6: Модуль 3

...

;Задача стартует здесь

2

JMP TB_HND

;Просмотр ожидающих прерываний

12.3. Регистры таймера В

Перечень регистров таймера В приведен в таблице 12-5.

Таблица 12-5. Регистры Таймера В.

Регистр

Краткое

Тип

Адрес

Исходное

обозначение

регистра

состояние

Управление Таймером В

TBCTL

Чтение/запись

0180h

Сброс с POR

Счетчик Таймера В

TBR

Чтение/запись

0190h

Сброс с POR

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

TBCCTL0

Чтение/запись

0182h

Сброс с POR

сравнением таймера В

Регистр 0 захвата/сравнения тай-

TBCCR0

Чтение/запись

0192h

Сброс с POR

мера В

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

TBCCTL1

Чтение/запись

0184h

Сброс с POR

сравнением таймера В

Регистр 1 захвата/сравнения тай-

TBCCR1

Чтение/запись

0194h

Сброс с POR

мера В

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

TBCCTL2

Чтение/запись

0186h

Сброс с POR

сравнением таймера В

Регистр 2 захвата/сравнения тай-

TBCCR2

Чтение/запись

0196h

Сброс с POR

мера В

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

TBCCTL3

Чтение/запись

0188h

Сброс с POR

сравнением таймера В

Регистр 3 захвата/сравнения тай-

TBCCR3

Чтение/запись

0198h

Сброс с POR

мера В

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

216


Раздел XII.

Таймер B

Регистр

Краткое

Тип

Адрес

Исходное

обозначение

регистра

состояние

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

TBCCTL4

Чтение/запись

018Ah

Сброс с POR

сравнением таймера В

Регистр 4 захвата/сравнения тай-

TBCCR4

Чтение/запись

019Ah

Сброс с POR

мера В

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

TBCCTL5

Чтение/запись

018Ch

Сброс с POR

сравнением таймера В

Регистр 5 захвата/сравнения таймера В

TBCCR5

Чтение/запись

019Ch

Сброс с POR

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

TBCCTL6

Чтение/запись

018Eh

Сброс с POR

сравнением таймера В

Регистр 6 захвата/сравнения тай-

TBCCR6

Чтение/запись

019Eh

Сброс с POR

мера В

Вектор прерывания Таймера В

TBIV

Только чтение

011Eh

Сброс с POR

TBCTL, регистр управления таймером В

15

14

13

12

11

10

9

8

Не

TBCLGRPx

CNTLx

Не

TBSSELx

используется

используется

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

Не

TBCLR

TBIE

TBIFG

используется

rw•(0)

rw•(0)

rw•(0)

rw•(0)

rw•(0)

w•(0)

rw•(0)

rw•(0)

Не используется

Бит 15

Не используется

Группировка TBCLx

00 – Каждая защелка TBCLx загружается независимо

01 – TBCL1+TBCL2 (биты TBCCR1 CLLDx управляют обновлением)

TBCL3+TBCL4 (биты TBCCR3 CLLDx управляют обновлением)

TBCL5+TBCL6 (биты TBCCR5 CLLDx управляют обновлением)

TBCL0 независим

TBCLGRP

Биты 14-13

10 – TBCL1+TBCL2+TBCL3 (биты TBCCR1 CLLDx управляют обнов-

лением)

TBCL4+TBCL5+TBCL6 (биты TBCCR4 CLLDx управляют обнов-

лением)

TBCL0 независим

11 – TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6

(биты TBCCR1 CLLDx управляют обновлением)

Длина счетчика

00 – 16-разрядный, TBR(max) = 0FFFFh

CNTLx

Биты 12-11

01 – 12-разрядный, TBR(max) = 0FFFh

10 – 10-разрядный, TBR(max) = 03FFh

11 – 8-разрядный, TBR(max) = 0FFh

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

217


MSP430x1xxFamily

Не используется

Бит 10

Не используется

Выбор источника тактирования таймера В

00

– TBCLK

TBSSELx

Биты 9-8

01 – ACLK

10

– SMCLK

11

– инвертированный INCLK

Входной делитель. Эти биты позволяют выбрать коэффициент

деления для входной тактовой частоты.

IDx

Биты 7-6

00

– /1

01 – /2

10

– /4

11

– /8

Выбор режима. Установка MCx=00h, когда таймер В не использует-

ся, позволяет уменьшить потребляемую мощность.

00

– Режим «останов»: таймер остановлен

MCx

Биты 5-4

01

– Режим «вверх»: таймер считает вверх к TBCL0

10 – Непрерывный режим: таймер считает вверх к значению, уста-

новленному TBCNTLx

11

– Режим «вверх/вниз»: таймер считает вверх к TBCL0, затем

вниз к 0000h

Не используется

Бит 3

Не используется

Очистка таймера В. Установка этого бита сбрасывает TBR, IDx и

TBCLR

Бит 2

выбранное направление счета. Бит TBCLR автоматически сбрасы-

вается и всегда читается как нуль.

Разрешение прерывания от таймера В. Этот бит разрешает запрос

TBIE

Бит 1

прерывания TBIFG.

0 – Прерывание запрещено

1 – Прерывание разрешено

Флаг прерывания таймера В

TBIFG

Бит 0

0 – Прерывание не ожидается

1 – Ожидается прерывание

TBR, регистр таймера В

15

14

13

12

11

10

9

8

TBRx

rw•(0)

rw•(0)

rw•(0)

rw•(0)

rw•(0)

rw•(0)

rw•(0)

rw•(0)

7

6

5

4

3

2

1

0

TBRx

rw•(0)

rw•(0)

rw•(0)

rw•(0)

rw•(0)

rw•(0)

rw•(0)

rw•(0)

TBRx

Биты 15-0

Регистр таймера В. Регистр TBR является счетчиком таймера В.

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

218


Раздел XII. Таймер B

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

15

14

13

12

11

10

9

8

CMx

CCISx

SCS

CLLDx

CAP

rw•(0)

rw•(0)

rw•(0)

rw•(0)

rw•(0)

rw•(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)

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

00

– Нет захвата

CMx

Биты 15-14

01

– Захват по нарастающему (переднему) фронту

10

– Захват по заднему фронту

11

– Захват как по переднему, так и по заднему фронтам

Выбор входа захвата/сравнения. Этими битами выбирается вход-

ной сигнал TBCCRx. См. справочное руководство конкретного

устройства для выяснения подробностей подключения сигналов.

CCISx

Биты 13-12

00

– CCIxA

01

– CCIxB

10

– GND

11

– VCC

Синхронизация источника захвата. Этот бит используется для

SCS

Бит 11

синхронизациивходного сигнала захвата с тактовым сигналом.

0 – Асинхронный захват

1 – Синхронный захват

Загрузка защелки сравнения. Эти биты определяют, какое собы-

тие вызовет загрузку защелки сравнения.

00

– TBCLx загружается при записи в TBCCRx

CLLDx

Бит 10-9

01

– TBCLx загружается, когда TBR досчитывает к нулю

10

– TBCLx загружается, когда TBR досчитывает к нулю (непре-

рывный режим или режим «вверх»)

11

– TBCLx загружается, когда TBR досчитывает к TBCLx

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

CAP

Бит 8

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

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

Режим вывода. Режимы 2, 3, 6 и 7 не используются для TBCL0,

поскольку EQUx=EQU0.

000 – Значение бита OUT

001 – Установка

OUTMODx

Биты 7-5

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

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

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

101 – Сброс

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

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

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

219