Файл: Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 2796
Скачиваний: 1
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 |
Библиотека Компэла |
|