Файл: Семейство микроконтроллеров 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

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