Файл: Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 2783
Скачиваний: 1
MSP430x1xxFamily
Разрешение прерывания от сторожевого таймера. Этот бит разрешает |
|||
прерывание WDTIFG в режиме интервального таймера. Нет необходи- |
|||
мости устанавливать этот бит в режиме сторожевого таймера. Пос- |
|||
WDTIE |
Бит 0 |
кольку другие биты в IE1 могут быть использованы другими модулями, |
|
рекомендуется устанавливать и очищать эти биты с помощью команд |
|||
BIS.B или BIC.B, а не командами MOV.B или CLR.B. |
|||
0 – Прерывание запрещено |
|||
1 – Прерывание разрешено |
|||
IFG1, регистр 1 флагов прерываний
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
||||
NMIIFG |
WDTIFG |
||||||||||
rw– 0 |
rw– 0 |
||||||||||
Биты 7-1 |
Эти биты могут быть использованы другими модулями. См. справоч- |
||||||||||
ное руководство конкретного устройства. |
|||||||||||
Флаг прерывания NMI. NMIIFG должен быть сброшен программно. |
|||||||||||
Поскольку другие биты в IFG1 могут быть использованы другими |
|||||||||||
NMIIFG |
Бит 4 |
модулями, рекомендуется очищать WDTIFG с помощью команд BIS.B |
|||||||||
или BIC.B, а не командами MOV.B или CLR.B. |
|||||||||||
0 – Прерывание не ожидается |
|||||||||||
1 – Прерывание ожидается |
|||||||||||
Флаг прерывания сторожевого таймера. В сторожевом режиме WDTIFG остается установленным до сброса программным обеспечением.
В интервальном режиме бит WDTIFG сбрасывается автоматически при обслуживании прерывания или же может быть сброшен программно.
WDTIE Бит 0 Поскольку другие биты в IE1 могут быть использованы другими модулями, рекомендуется устанавливать и очищать эти биты с помощью команд BIS.B или BIC.B, а не командами MOV.B или CLR.B.
0 – Прерывание не ожидается
1 – Прерывание ожидается
178 |
Библиотека Компэла |
|
Таймер A
Раздел XI.
MSP430x1xxFamily
MSP430x1xxFamily
Таймер А
Таймер А – это 16-разрядный таймер/счетчик с тремя регистрами захвата/сравнения. В этом разделе описывается таймер А. Он реализован во всех устройствах MSP430x1xx.
11.1. Введение в таймер А
Таймер А – это 16-разрядный таймер/счетчик с тремя регистрами захвата/ сравнения. Таймер А может обеспечить множество захватов/сравнений, выходов ШИМ и выдержку временных интервалов. Таймер А также имеет обширные возможности прерывания. Прерывания могут быть сгенерированы от счетчика при переполнении и от каждого из регистров захвата/сравнения.
Таймер А обладает следующими возможностями:
•Асинхронный 16-разрядный таймер/счетчик с четырьмя режимами работы;
•Выбираемый и конфигурируемый источник тактирования;
•Три конфигурируемых регистра захвата/сравнения;
•Конфигурируемые выходы с возможностью ШИМ;
•Асинхронная фиксация (защелка) входа и выхода;
•Регистр вектора прерываний для быстрого декодирования всех прерываний таймера А.
Блок-схема таймера А показана на рис. 11-1.
Примечание: Использование слова «счет»
«Счет» используется везде в этом разделе. Это способ показать, что счетчик должен быть в процессе подсчета для выполняемого действия. Если в счетчик напрямую записывается конкретное значение, соответствующе действие не происходит.
11.2. Функционирование таймера А
Модуль таймера А конфигурируется программным обеспечением пользователя. Настройка и работа таймера А рассматриваются в нижеследующих разделах.
11.2.1. 16-разрядный таймер-счетчик
Регистр 16-разрядного таймера/счетчика TAR, инкрементируется или декрементируется (в зависимости от режима работы) с каждым нарастающим фронтом тактового сигнала. TAR может быть программно прочитан и записан. Кроме того, таймер может генерировать прерывание при переполнении.
180 |
Библиотека Компэла |
|
Раздел XI. |
Таймер A |
|||||||||||
TASSELx |
IDx |
Тактирование таймера |
MCx |
Блок таймера |
||||||||
150 |
||||||||||||
TACLK |
00 |
Делитель |
16•разрядный таймер |
Режим |
EQU0 |
|||||||
ACLK |
01 |
1/2/4/8 |
Очистка |
TAR |
RC |
счета |
||||||
SMCLK |
10 |
Режим TAIFG |
||||||||||
INCLK |
11 |
TACLR |
||||||||||
CCR0 |
||||||||||||
CCR1 |
||||||||||||
CCR2 |
||||||||||||
CCISx |
CMx |
Logic |
COV |
|||||||||
CCI2A |
Режим |
SCS |
||||||||||
00 |
150 |
|||||||||||
CCI2B |
01 |
захвата |
0 |
|||||||||
CCR2 |
||||||||||||
GND |
10 |
|||||||||||
Тактирование |
Синхр. |
1 |
||||||||||
VCC |
11 |
|||||||||||
таймера |
||||||||||||
CCI |
Компаратор 2 |
|||||||||||
EQU2 |
||||||||||||
CAP |
||||||||||||
SCCI |
A |
|||||||||||
Y EN |
0 |
Установка |
||||||||||
1 |
TACCR2 CCIFG |
|||||||||||
Модуль 2 |
OUT |
|||||||||||
D Set Q |
Сигнал OUT2 |
|||||||||||
EQU0 |
выхода |
Тактирование |
||||||||||
Reset |
||||||||||||
таймера |
||||||||||||
OUTMODx |
POR |
|||||||||||
Рис. 11-1. Блок-схема таймера А |
||||||||||||
TAR можно очистить установкой бита TACLR. Установка TACLR также очищает делитель тактовой частоты и направление счета для режима вверх/вниз.
Примечание: Изменение регистров таймера А
Рекомендуется останавливать таймер перед изменением режима его работы (за исключением операций с флагом прерывания и разрешения прерывания, и TACLR), чтобы предотвратить его некорректную работу.
Когда сигнал TACLK асинхронен с сигналом тактирования ЦПУ, любое чтение из TAR должно происходить, когда таймер не работает, в противном случае результаты могут быть непредсказуемы. Любая запись в TAR приведет к немедленному результату.
Библиотека Компэла |
181 |
|
MSP430x1xxFamily
Выбор источника тактирования и делитель
Тактирование таймера TACLK может производиться от ACLK, SMCLK или от внешнего источника через TACLK или INCLK. Источник тактовых импульсов выбирается с помощью битов TASSELx. Выбранный источник тактирования может быть подключен к таймеру напрямую или через делитель на 2, 4 или 8 с помощью битов IDx. Делитель TACLK сбрасывается при установке бита TACLR.
11.2.2. Запуск таймера
Таймер может быть запущен или перезапущен следующими способами:
•Таймер считает, когда MCx > 0 и источник тактовых импульсов активен
•Когда таймер в режиме «вверх» или «вверх/вниз», он может быть остановлен путем записи 0 в TACCR0. Затем таймер может быть перезапущен путем записи ненулевого значения в TACCR0. В этом случае таймер начинает инкрементироваться от нуля.
11.2.3. Управление режимом таймера
Таймер имеет четыре режима работы, описанных в таблице 11-1: «стоп», «вверх», «непрерывный» и «вверх/вниз». Режимы работы выбираются с помощью битов MCx.
Таблица 11-1. Режимы таймера. |
|||
MCx |
Режим |
Описание |
|
00 |
Стоп |
Останов таймера |
|
01 |
Вверх |
Таймер многократно считает от нуля до значения в TACCR0 |
|
10 |
Непрерывный |
Таймер многократно считает от нуля до значения 0FFFFh |
|
11 |
Вверх/вниз |
Таймер многократно считает от нуля вверх до значения в TACCR0 и |
|
назад до нуля. |
|||
Режим «Вверх»
Режим «вверх» используется, если период таймера должен отличаться от количества отсчетов 0FFFFh. Таймер многократно считает вверх до значения, содержащегося в регистре сравнения TACCR0, который задает период, как показано на рис.11-2. Количество отсчетов таймера в периоде равно TACCR0+1. Когда значение таймера становится равно содержимому TACCR0, таймер перезапускается, начиная счет от нуля. Если режим «вверх» выбран, когда значение таймера больше содержимого TACCR0, таймер немедленно перезапускается, начиная считать от нуля.
182 |
Библиотека Компэла |
|