
Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004)
.pdf
Раздел XI. |
|
|
|
|
|
Таймер A |
Пример вывода – таймер в непрерывном режиме |
||||||
Сигнал OUTx изменяется, когда таймер достигает значений TACCRx и |
||||||
TACCR0, в зависимости от режима вывода. Пример с использованием TACCR0 и |
||||||
TACCR1 показан на рис. 11-13. |
|
|
|
|||
0FFFFh |
|
|
|
|
|
|
TACCR0 |
|
|
|
|
|
|
TACCR1 |
|
|
|
|
|
|
0h |
|
|
|
|
|
|
|
|
|
|
|
|
Режим вывода 1: |
|
|
|
|
|
|
Установка |
|
|
|
|
|
|
Режим вывода 2: |
|
|
|
|
|
|
Переключение/Сброс |
|
|
|
|
|
|
Режим вывода 3: |
|
|
|
|
|
|
Установка/Сброс |
|
|
|
|
|
|
Режим вывода 4: |
|
|
|
|
|
|
Переключение |
|
|
|
|
|
|
Режим вывода 5: |
|
|
|
|
|
|
Сброс |
|
|
|
|
|
|
Режим вывода 6: |
|
|
|
|
|
|
Переключение/Установка |
|
|
|
|
|
|
Режим вывода 7: |
|
|
|
|
|
|
Сброс/Установка |
TAIFG |
EQU1 |
EQU0 |
TAIFG |
EQU1 |
EQU0 |
События, вызывающие |
прерывание |
Рис. 11-13. Пример вывода – таймер в непрерывном режиме
Пример вывода – таймер в режиме «вверх/вниз»
Сигнал OUTx изменяется, когда таймер становится равным TACCRx в каждом направлении счета, а также когда таймер равен TACCR0, в зависимости от режима вывода. Пример с использованием TACCR0 и TACCR2 показан на рис. 11-14.
Примечание: Переключение между режимами вывода
При переключении между режимами вывода один из битов OUTMODx должен оставаться установленным во время перехода, кроме переключения в режим 0. В противном случае может произойти сбой, поскольку режим вывода 0 декодирует элемент NOR (НЕ-ИЛИ). Безопасный метод переключения между
Библиотека Компэла |
|
191 |
|

|
|
|
|
MSP430x1xxFamily |
0FFFFh |
|
|
|
|
TACCR0 |
|
|
|
|
TACCR2 |
|
|
|
|
0h |
|
|
|
|
|
|
|
|
Режим вывода 1: |
|
|
|
|
Установка |
|
|
|
|
Режим вывода 2: |
|
|
|
|
Переключение/Сброс |
|
|
|
|
Режим вывода 3: |
|
|
|
|
Установка/Сброс |
|
|
|
|
Режим вывода 4: |
|
|
|
|
Переключение |
|
|
|
|
Режим вывода 5: |
|
|
|
|
Сброс |
|
|
|
|
Режим вывода 6: |
|
|
|
|
Переключение/Установка |
|
|
|
|
Режим вывода 7: |
|
|
|
|
Сброс/Установка |
|
EQU2 |
EQU2 |
EQU2 |
EQU2 |
TAIFG |
EQU0 |
TAIFG |
EQU0 |
События, вызывающие |
|
|
|
|
прерывание |
|
Рис. 11-14. Пример вывода – таймер в режиме «вверх/вниз» |
режимами вывода заключается в использовании режима вывода 7 как переходного состояния:
BIS |
#OUTMOD_7,&TACCTLx |
;Установка режима вывода 7 |
BIC |
#OUTMODx,&TACCTLx |
;Очистка лишних битов |
11.2.6.Прерывания Таймера А
С16-разрядным модулем таймера А связаны два вектора прерываний:
•Вектор прерывания TACCR0 для TACCR0 CCIFG
•Вектор прерывания TAIV для всех других флагов CCIFG и TAIFG
Врежиме захвата любой флаг CCIFG устанавливается, когда значение таймера зафиксировано в соответствующем регистре TACCRx. В режиме сравнения устанавливается любой флаг CCIFG, если TAR досчитал до соответствую-
192 |
|
Библиотека Компэла |
|

Раздел XI. |
Таймер A |
щего значения TACCRx. Программное обеспечение может также устанавливать или очищать любой флаг CCIFG. Все флаги CCIFG запрашивают прерывание, когда установлены их соответствующие биты CCIE и бит GIE.
Прерывание TACCR0
Флаг TACCR0 CCIFG обладает наивысшим приоритетом прерывания Таймера А и имеет специализированный вектор прерывания, как показано на рис. 11-15. Флаг TACCR0 CCIFG автоматически сбрасывается, когда обслуживается запрос на прерывание TACCR0.
Захват |
|
|
EQU0 |
D |
Set |
CAP |
Q |
|
|
|
|
|
Тактирование |
Reset |
|
таймера |
|
|
|
CCIE |
IRQ, запрос обработки |
|
|
|
прерывания |
|
IRACC, прием запроса |
POR |
на прерывание |
Рис. 11-15. Флаг прерывания захвата/сравнения TACCR0
Генератор вектора прерывания TAIV
Флаги TACCR1 CCIFG, TACCR2 CCIFG и TAIFG распределены по приоритетам и объединены в источник одного вектора прерывания. Регистр вектора прерывания TAIV используется для определения, какой флаг запросил прерывание.
Разрешенное прерывание с наивысшим приоритетом генерирует число в регистре TAIV (см. описание регистра). Можно оценить это число или добавить его к программному счетчику для автоматического входа в соответствующую программную процедуру. Запрещенные прерывания Таймера А не воздействуют на значение TAIV.
Любое обращение – чтение или запись регистра TAIV – автоматически сбрасывает флаг наивысшего ожидающего прерывания. Если установлен другой флаг прерывания, будет немедленно сгенерировано другое прерывание после обработки начального прерывания. Например, если флаги TACCR1 и TACCR2 CCIFG установлены, когда процедура обработки прерывания обращается к регистру TAIV, флаг TACCR1 CCIFG автоматически сбрасывается. После выполнения команды RETI процедуры обработки прерывания, флаг TACCR2 CCIFG генерирует другое прерывание.
Библиотека Компэла |
|
193 |
|

MSP430x1xxFamily
Пример программного обеспечения, использующего TAIV
Приведенный далее пример программного обеспечения показывает рекомендуемое использование TAIV и величину издержек на управление. Значение TAIV добавляется к программному счетчику РС для автоматического перехода к соответствующей программной процедуре.
Числа в правом поле показывают необходимое количество циклов ЦПУ для каждой команды. Программные издержки различных источников прерывания включают задержки прерывания и циклы возврата из прерывания, но не учитывают собственно время обработки задачи. Задержки делятся на:
• Блок захвата/сравнения TACCR0 |
11 циклов |
• Блоки захвата/сравнения TACCR1, TACCR2 |
16 циклов |
• Переполнение таймера TAIFG |
14 циклов |
;Обработчик прерывания для TACCR0 CCIFG. |
Циклы |
CCIFG_0_HND |
|
;... ;Начало времени задержки обработчика прерывания 6
|
RETI |
|
5 |
;Обработчик прерывания для TAIFG, TACCR1 и TACCR2 CCIFG. |
6 |
||
TA_HND |
... |
;Задержка прерывания |
|
|
ADD &TAIV,PC ;Добавление смещения к таблице переходов 3 |
||
|
RETI |
;Вектор 0: Нет прерывания |
5 |
|
JMP CCIFG_1_HND ;Вектор 2: TACCR1 |
2 |
|
|
JMP CCIFG_2_HND ;Вектор 4: TACCR2 |
2 |
|
|
RETI |
;Вектор 6: Зарезервировано |
5 |
TAIFG_HND |
RETI |
;Вектор 8: Зарезервировано |
5 |
... |
;Вектор 10: Флаг TAIFG |
|
|
|
;Задача стартует здесь |
5 |
|
|
RETI |
;Вектор 4: TACCR2 |
|
CCIFG_2_HND |
|
||
|
... |
;Задача стартует здесь |
5 |
|
RETI |
;Возврат к главной программе |
|
CCIFG_1_HND |
;Вектор 2: TACCR1 |
|
|
|
... |
;Задача стартует здесь |
5 |
|
RETI |
;Возврат к главной программе |
Перечень регистров Таймера А приведен в таблице 11-3.
Таблица 11-3. Регистры Таймера А.
|
Регистр |
Краткое |
Тип регистра |
Адрес |
Исходное |
|
|
обозначение |
состояние |
||||
|
|
|
|
|
||
Управление Таймером А |
TACTL |
Чтение/запись |
0160h |
Сброс с POR |
||
|
|
|
|
|
||
Счетчик Таймера А |
TAR |
Чтение/запись |
0170h |
Сброс с POR |
||
|
|
|
|
|
|
|
|
|
|
|
|
Библиотека Компэла |
|
194 |
|
|
|
|
||
|
|
|
|

Раздел XI. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таймер A |
|||
|
|
|
|
|
|
|
|
|
|
|
Таблица 11-3. (Окончание) |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистр |
|
|
|
|
Краткое |
|
Тип регистра |
|
Адрес |
|
Исходное |
|||||||
|
|
|
|
|
обозначение |
|
|
состояние |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Регистр 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) |
rw•(0) |
|
rw•(0) |
|
rw•(0) |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
Не используются |
Биты 15-10 |
Не используются |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
Выбор источника тактирования Таймера А |
|
|
|
|
|||||||||
|
|
|
|
|
|
00 – TACLK |
|
|
|
|
|
|
|
|
|
|
|
||
|
TASSELx |
|
Биты 9-8 |
01 – ACLK |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
10 – SMCLK |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
11 – INCLK |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
Входной делитель. Эти биты позволяют выбрать коэффициент |
|||||||||||||
|
|
|
|
|
|
деления для входной тактовой частоты. |
|
|
|
|
|||||||||
|
IDx |
|
Биты 7-6 |
00 – /1 |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
01 – /2 |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
10 – /4 |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
11 – /8 |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Библиотека Компэла |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
195 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MSP430x1xxFamily |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
Выбор режима. Установка MCx=00h, когда Таймер А не исполь- |
|||||||||||
|
|
|
|
|
|
|
зуется, позволяет уменьшить потребляемую мощность. |
|||||||||||
|
|
|
|
|
|
|
00 – Режим остановка: таймер остановлен |
|
|
|||||||||
|
MCx |
|
Биты 5-4 |
01 – Режим «вверх»: таймер считает вверх к TACCR0 |
|
|
||||||||||||
|
|
|
|
|
|
|
10 – Непрерывный режим: таймер считает вверх к 0FFFFh |
|||||||||||
|
|
|
|
|
|
|
11 – Режим «вверх/вниз»: таймер считает вверх к TACCR0, |
|||||||||||
|
|
|
|
|
|
|
затем вниз к 0000h |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Не используется |
|
Бит 3 |
Не используется |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
Очистка Таймера А. Установка этого бита сбрасывает TAR, IDx |
|||||||||||
|
TACLR |
|
|
Бит 2 |
и выбранное направление счета. Бит 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) |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Библиотека Компэла |
|||
196 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Раздел XI. |
|
|
Таймер A |
||
|
|
|
|
||
|
|
|
Режим захвата |
||
|
|
|
00 – Нет захвата |
||
CMx |
Биты 15-14 |
01 – Захват по нарастающему (переднему) фронту |
|||
|
|
|
10 – Захват по заднему фронту |
||
|
|
|
11 – Захват как по переднему, так и по заднему фронтам |
||
|
|
|
Выбор входа захвата/сравнения. Этими битами выбирается |
||
|
|
|
входной сигнал TACCRx. См. справочное руководство конкрет- |
||
|
|
|
ного устройства для выяснения подробностей подключения |
||
CCISx |
Биты 13-12 |
сигналов. |
|||
00 – CCIxA |
|||||
|
|
|
01 – CCIxB |
||
|
|
|
10 – GND |
||
|
|
|
11 – VCC |
||
|
|
|
|
||
|
|
|
Синхронизация источника захвата. Этот бит используется для |
||
|
|
|
синхронизации входного сигнала захвата с тактовым сигналом |
||
SCS |
Бит 1 |
таймера. |
|||
|
|
|
0 – Асинхронный захват |
||
|
|
|
1 – Синхронный захват |
||
|
|
|
Синхронизация входа захвата/сравнения. Выбранный входной |
||
SCCI |
Бит 10 |
сигнал CCI фиксируется по сигналу EQUx и может быть прочи- |
|||
|
|
|
тан через этот бит. |
||
|
|
|
|||
Не используется |
Бит 9 |
Не используется. Только читается. Всегда читается как 0. |
|||
|
|
|
|
||
|
|
|
Режим захвата. |
||
CAP |
Бит 8 |
0 – Режим сравнения |
|||
|
|
|
1 – Режим захвата |
||
|
|
|
Режим вывода. Режимы 2, 3, 6 и 7 не используются для |
||
|
|
|
TACCR0, поскольку EQUx=EQU0. |
||
|
|
|
000 – Значение бита OUT |
||
|
|
|
001 – Установка |
||
OUTMODx |
Биты 7-5 |
010 – Переключение/сброс |
|||
011 – Установка/сброс |
|||||
|
|
|
|||
|
|
|
100 – Переключение |
||
|
|
|
101 – Сброс |
||
|
|
|
110 – Переключение/установка |
||
|
|
|
111 – Сброс/установка |
||
|
|
|
|
||
|
|
|
Разрешение прерывания по захвату/сравнению. Этот бит разре- |
||
CCIE |
Бит 4 |
шает запрос прерывания от соответствующего флага CCIFG. |
|||
0 – Запрещение прерывания |
|||||
|
|
|
|||
|
|
|
1 – Разрешение прерывания |
||
CCI |
Бит 3 |
Вход захвата/сравнения. Выбранный входной сигнал может |
|||
быть прочитан этим битом. |
|||||
|
|
|
|||
|
|
|
|
||
|
|
|
Выход. Этот бит указывает состояние выхода. Если выбран |
||
|
|
|
режима вывода 0, этот бит напрямую управляет состоянием |
||
OUT |
Бит 2 |
выхода. |
|||
|
|
|
0 – Низкий уровень выхода |
||
|
|
|
1 – Высокий уровень выхода |
||
Библиотека Компэла |
|
|
|
||
|
|
197 |
|||
|
|

MSP430x1xxFamily
|
|
Переполнение захвата. Этот бит указывает, что произошло |
|
|
|
переполнение захвата. Бит COV должен быть сброшен про- |
|
COV |
Бит 1 |
граммно |
|
|
|
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 |
|
|
2 |
|
1 |
|
|
0 |
|
|
||||||||
|
|
|
|
3 |
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
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 |
|
Зарезервировано |
|
- |
|
|
|
|
Низший |
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
|
Библиотека Компэла |
|

Таймер 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 |
|
Библиотека Компэла |
|