MSP430_Final
.pdf12.3. Регистры Таймера А 321
; Обработчик прерывания для TACCR0 CCIFG. |
Тактов |
|||
CCIFG_0_HND |
|
|
|
|
; |
... |
|
; Задержка обработки прерывания |
6 |
|
RETI |
|
|
5 |
; Обработчик прерывания для |
TAIFG, TACCR1 и TACCR2 CCIFG. |
|
||
TA_HND ... |
|
; Задержка обработки прерывания |
6 |
|
|
ADD |
&TAIV,PC |
; Прибавляем смещение в таблице переходов |
3 |
|
RETI |
|
; Вектор 0: Нет прерывания |
5 |
|
JMP |
CCIFG_1_HND |
; Вектор 2: TACCR1 |
2 |
|
JMP |
CCIFG_2_HND |
; Вектор 4: TACCR2 |
2 |
|
RETI |
|
; Вектор 6: Зарезервировано |
5 |
|
RETI |
|
; Вектор 8: Зарезервировано |
5 |
TAIFG_HND |
|
; Вектор 10: Флаг TAIFG |
|
|
|
... |
|
; Здесь начало задачи |
|
|
RETI |
|
|
5 |
CCIFG_2_HND |
|
; Вектор 4: TACCR2 |
|
|
|
... |
|
; Здесь начало задачи |
|
|
RETI |
|
; Возвращаемся в основную программу |
5 |
CCIFG_1_HND |
|
; Вектор 2: TACCR1 |
|
|
|
... |
|
; Здесь начало задачи |
|
|
RETI |
|
; Возвращаемся в основную программу |
5 |
12.3. Регистры Таймера А
Список регистров Таймера А приведён в Табл. 12.3.
Таблица 12.3. Регистры Таймера А
Регистр |
Обозначение |
Тип регистра |
Адрес |
Исходное состояние |
|
|
|
|
|
Регистр управления Таймера А |
TACTL |
Чтение/запись |
0160h |
Сбрасывается после POR |
|
|
|
|
|
Регистр счётчика Таймера А |
TAR |
Чтение/запись |
0170h |
Сбрасывается после POR |
|
|
|
|
|
Регистр управления блоком |
TACCTL0 |
Чтение/запись |
0162h |
Сбрасывается после POR |
захвата/сравнения 0 Таймера А |
|
|
|
|
|
|
|
|
|
Регистр захвата/сравнения 0 |
TACCR0 |
Чтение/запись |
0172h |
Сбрасывается после POR |
Таймера А |
|
|
|
|
|
|
|
|
|
Регистр управления блоком |
TACCTL1 |
Чтение/запись |
0164h |
Сбрасывается после POR |
захвата/сравнения 1 Таймера А |
|
|
|
|
|
|
|
|
|
Регистр захвата/сравнения 1 |
TACCR1 |
Чтение/запись |
0174h |
Сбрасывается после POR |
Таймера А |
|
|
|
|
|
|
|
|
|
Регистр управления блоком |
TACCTL2* |
Чтение/запись |
0166h |
Сбрасывается после POR |
захвата/сравнения 2 Таймера А |
|
|
|
|
|
|
|
|
|
Регистр захвата/сравнения 2 |
TACCR2* |
Чтение/запись |
0176h |
Сбрасывается после POR |
Таймера А |
|
|
|
|
|
|
|
|
|
Регистр вектора прерывания |
TAIV |
Только чтение |
012Eh |
Сбрасывается после POR |
Таймера А |
|
|
|
|
|
|
|
|
|
* Отсутствует в моделях MSP430x20xx
322 Глава 12. Таймер A
TACTL, регистр управления Таймера А
15 |
14 |
|
|
13 |
12 |
11 |
|
10 |
9 |
8 |
|
|
|
|
Unused |
|
|
|
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 |
|
Unused |
|
TACLR |
TAIE |
TAIFG |
|
|
|
|
|
|
|
|
|
|
|
rw–(0) |
rw–(0) |
|
|
rw–(0) |
rw–(0) |
rw–(0) |
|
w–(0) |
rw–(0) |
rw–(0) |
Unused |
Биты |
Не используются. |
|
|
|
|
|
|||
|
15…10 |
|
|
|
|
|
|
|
|
|
TASSELx |
Биты |
Выбор источника тактового сигнала. |
|
|
|
|||||
|
9…8 |
00 |
TACLK |
|
|
|
|
|
|
|
|
|
01 |
ACLK |
|
|
|
|
|
|
|
|
|
10 |
SMCLK |
|
|
|
|
|
|
|
|
|
11 |
INCLK |
|
|
|
|
|
|
|
IDx |
Биты |
Коэффициент деления входного делителя. Эти биты определяют ко |
||||||||
|
7…6 |
эффициент деления задающего тактового сигнала. |
|
|||||||
|
|
00 |
/1 |
|
|
|
|
|
|
|
|
|
01 |
/2 |
|
|
|
|
|
|
|
|
|
10 |
/4 |
|
|
|
|
|
|
|
|
|
11 |
/8 |
|
|
|
|
|
|
|
MCx |
Биты |
Управление режимом таймера. Установка MCx = 00h при неисполь |
||||||||
|
5…4 |
зуемом таймере уменьшает общее потребление микроконтроллера. |
||||||||
|
|
00 |
Останов: таймер остановлен. |
|
|
|
||||
|
|
01 |
Прямой счёт: таймер считает от 0000h до TACCR0. |
|
10Непрерывный счёт: таймер считает от 0000h до 0FFFFh.
11Реверсивный счёт: таймер считает от 0000h до TACCR0, а потом в обратном направлении до 0000h.
Unused |
Бит 3 |
Не используется. |
|
TACLR |
Бит 2 |
Очистка таймера. Установка этого бита обнуляет регистр TAR, дели |
|
|
|
тель и сбрасывает признак направления счёта. Бит TACLR автомати |
|
|
|
чески сбрасывается; всегда читается как 0. |
|
TAIE |
Бит 1 |
Разрешение прерывания таймера. Этот бит разрешает генерацию за |
|
|
|
проса прерывания TAIFG. |
|
|
|
0 |
Прерывание запрещено |
|
|
1 |
Прерывание разрешено |
TAIFG |
Бит 0 |
Флаг прерывания таймера. |
|
|
|
0 |
Прерывания не было |
|
|
1 |
Прерывание было |
12.3. Регистры Таймера А 323
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 значение Таймера А
TACCRx, регистр захвата/сравнения x Таймера А
15 |
14 |
|
|
13 |
|
12 |
11 |
|
10 |
|
9 |
|
8 |
|
|
|
|
|
|
TAССRx |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rw–(0) |
rw–(0) |
|
|
rw–(0) |
rw–(0) |
rw–(0) |
rw–(0) |
rw–(0) |
rw–(0) |
||||
7 |
6 |
|
|
5 |
|
4 |
3 |
|
2 |
|
1 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TAССRx |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rw–(0) |
rw–(0) |
|
|
rw–(0) |
rw–(0) |
rw–(0) |
rw–(0) |
rw–(0) |
rw–(0) |
||||
TAССRx |
Биты |
Регистр захвата/сравнения Таймера А. |
|
|
|
||||||||
|
15…0 |
Режим сравнения: регистр TACCRx содержит число, которое срав |
|||||||||||
|
|
нивается с содержимым регистра счётчика TAR. |
|
|
|
||||||||
|
|
Режим захвата: содержимое регистра TAR копируется в регистр |
|||||||||||
|
|
TACCRx в момент выполнения операции захвата. |
|
||||||||||
TACCTLx, регистр управления блока захвата/сравнения |
|
||||||||||||
15 |
14 |
|
|
13 |
|
12 |
11 |
|
10 |
|
9 |
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CMx |
|
|
CCISx |
SCS |
|
SCCI |
|
Unused |
|
CAP |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rw–(0) |
rw–(0) |
|
|
rw–(0) |
rw–(0) |
rw–(0) |
|
r |
|
r0 |
|
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) |
CMx |
Биты |
Режим захвата. |
|
|
|
|
|
|
|
|
|||
|
15…14 |
00 |
Нет захвата |
|
|
|
|
|
|
|
|||
|
|
01 Захват по нарастающему фронту |
|
|
|
|
|
||||||
|
|
10 Захват по спадающему фронту |
|
|
|
|
|
||||||
|
|
11 Захват по обоим фронтам |
|
|
|
|
|
||||||
CCISx |
Биты |
Выбор входа захвата/сравнения. Эти биты определяют входной сиг |
|||||||||||
|
13…12 нал блока захвата/сравнения. Соответствие сигналов каждому из |
||||||||||||
|
|
входов приводится в документации на конкретные модели. |
|
||||||||||
|
|
00 |
CCIxA |
|
|
|
|
|
|
|
|
||
|
|
01 |
CCIxB |
|
|
|
|
|
|
|
|
||
|
|
10 |
GND |
|
|
|
|
|
|
|
|
||
|
|
11 |
VCC |
|
|
|
|
|
|
|
|
324 Глава 12. Таймер A
SCS |
Бит 11 |
Синхронизация захвата. Этот бит используется для синхронизации |
|
|
|
сигнала захвата с тактовым сигналом таймера. |
|
|
|
0 |
Асинхронный захват |
|
|
1 |
Синхронный захват |
SCCI |
Бит 10 |
Синхронизованный вход захвата/сравнения. Входной сигнал блока |
|
|
|
захвата/сравнения фиксируется по сигналу EQUx и может быть счи |
|
|
|
тан при помощи этого бита. |
|
Unused |
Бит 9 |
Не используется. Только для чтения. Всегда читается как 0. |
|
CAP |
Бит 8 |
Режим работы блока захвата/сравнения. |
|
|
|
0 |
Режим захвата |
|
|
1 |
Режим сравнения |
OUTMODx |
Биты |
Режим работы модуля вывода. Для регистра TACCR0 использование |
|
|
7…5 |
режимов 2, 3, 6 и 7 не имеет смысла, поскольку в этом случае |
|
|
|
EQUx = EQU0. |
|
|
|
000 |
Состояние бита OUT |
|
|
001 |
Установка |
|
|
010 |
Переключение/сброс |
|
|
011 |
Установка/сброс |
|
|
100 |
Переключение |
|
|
101 |
Сброс |
|
|
110 |
Переключение/установка |
|
|
111 |
Сброс/установка |
CCIE |
Бит 4 |
Разрешение прерывания захвата/сравнения. Этот бит разрешает ге |
|
|
|
нерацию запроса прерывания при установке соответствующего фла |
|
|
|
га CCIFG. |
|
|
|
0 |
Прерывание запрещено |
|
|
1 |
Прерывание разрешено |
CCI |
Бит 3 |
Вход захвата/сравнения. Посредством этого бита можно определить |
|
|
|
значение входного сигнала блока захвата/сравнения. |
|
OUT |
Бит 2 |
Состояние выхода. При работе модуля вывода в режиме 0 этот бит |
|
|
|
напрямую управляет состоянием выхода. |
|
|
|
0 |
На выходе НИЗКИЙ уровень |
|
|
1 |
На выходе ВЫСОКИЙ уровень |
COV |
Бит 1 |
Переполнение захвата. Этот бит индицирует переполнение при опе |
|
|
|
рациях захвата. Бит COV должен сбрасываться программно. |
|
|
|
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 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
|
TAIVx |
|
0 |
|
|
|
|
|
|
|
|
r0 |
r0 |
r0 |
r0 |
r–(0) |
r–(0) |
r–(0) |
r0 |
|
|
|
|
12.3. Регистры Таймера А 325 |
|
|
|
|
|
|
|
TAIVx |
Биты Значение вектора прерывания таймера |
|
|||
|
15…0 |
|
|
|
|
|
Содержимое |
Источник прерывания |
Флаг прерывания |
Приоритет |
|
|
|
||||
|
|
TAIV |
прерывания |
||
|
|
|
|
||
|
|
|
|
|
|
|
|
00h |
Не было прерываний |
— |
|
|
|
|
|
|
|
|
|
02h |
Захват/сравнение 1 |
TACCR1 CCIFG |
Высший |
|
|
|
|
|
|
|
|
04h |
Захват/сравнение 2* |
TACCR2 CCIFG |
|
|
|
06h |
Зарезервировано |
— |
|
|
|
|
|
|
|
|
|
08h |
Зарезервировано |
— |
|
|
|
|
|
|
|
|
|
0Ah |
Переполнение таймера |
TAIFG |
|
|
|
|
|
|
|
|
|
0Ch |
Зарезервировано |
— |
|
|
|
|
|
|
|
|
|
0Eh |
Зарезервировано |
— |
Низший |
|
|
|
|
|
|
|
|
* Не реализовано в моделях MSP430x20xx. |
|
13.1. Введение 327
|
|
|
|
|
TBSSELx |
|
|
|
|
|
Тактовый сигнал |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Блок |
|||||||||||||||
|
|
|
|
|
|
|
|
IDx |
таймера |
|
|
|
|
|
|
|
|
MCx |
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
таймера |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
|
|
0 |
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
TBCLK |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16–битный таймер |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
00 |
|
|
|
|
Делитель |
|
|
|
|
|
|
|
|
Режим |
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
TBR |
|
|
RC |
|
|
|
|
|
|
|
EQU0 |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
ACLK |
|
|
|
|
|
|
01 |
|
|
|
|
1/2/4/8 |
|
|
|
|
|
|
|
|
|
|
счёта |
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
Очистка |
8 10 12 16 |
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
SMCLK |
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CNTLx |
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
11 |
|
|
|
TBCLGRPx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TBCLR |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Логика |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
Установка |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
загрузки |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
группы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TBIFG |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CCR0
CCR1
CCR2
CCR3
CCR4
CCR5
CCISx |
CMx |
Логика |
COV |
CCR6 |
CCI6A |
|
|
00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SCS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
Режим |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
|
|
|
|
|
|
|
|
|
0 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
CCI6B |
|
|
01 |
|
|
|
|
|
захвата |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
GND |
|
|
10 |
|
|
Тактовый сигнал |
|
Синхр. |
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TBCCR6 |
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
VCC |
|
|
11 |
|
|
|
|
таймера |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Загрузка |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
CLLDx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Логика |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
CCI |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Защёлка TBCL6 |
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
загрузки |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
группы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
VCC |
|
|
|
|
|
|
|
|
00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
TBR = 0 |
|
|
|
|
|
|
|
01 |
|
|
|
CCR5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Компаратор 6 |
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
EQU0 |
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
CCR4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EQU6 |
|
|
|
CAP |
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
UP/DOWN |
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CCR1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Установка |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OUT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
Модуль |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TBCCR6 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CCIFG |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
вывода |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Установка |
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
EQU0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D |
Q |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
Тактовый сигнал |
|
|
|
|
|
Сигнал OUT6 |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
таймера |
|
|
|
Сброс |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
POR
OUTMODx
Рис. 13.1. Блок схема Таймера B.
328Глава 13. Таймер B
регистры TBCCRx Таймера B имеют двойную буферизацию и могут объеди няться друг с другом;
все выходы Таймера B могут быть переведёны в высокоимпедансное состояние;
функция бита SCCI в Таймере B не реализована.
13.2. Функционирование Таймера B
Конфигурирование модуля Таймера B осуществляется пользовательской про граммой. Настройка Таймера B и его функционирование рассматриваются в сле дующих подразделах.
13.2.1. 16Cбитный таймер/счётчик
Регистр 16 битного таймера/счётчика TBR инкрементируется или декремен тируется (в зависимости от режима работы) по нарастающему фронту импульсов тактового сигнала. Регистр TBR доступен как для чтения, так и для записи. Кроме того, при переполнении этого регистра таймер может генерировать прерывание.
Регистр TBR может быть очищен установкой бита TBCLR. При установке би та TBCLR также очищается делитель тактового сигнала и сбрасывается признак направления для режима реверсивного счёта.
Примечание. Изменение регистров Таймера B
Рекомендуется останавливать таймер перед изменением режима работы (это не относится к операциям с битами разрешения прерываний, флагами прерываний и битом TBCLR), чтобы предотвратить его некорректное функционирование.
Если тактовый сигнал таймера не синхронен с тактовым сигналом ЦПУ, то любые операции чтения регистра TBR должны выполняться при остановленном таймере, в противном случае результат чтения будет непредсказуемым. В качестве альтерна тивного варианта можно выполнить несколько операций чтения регистра при ра ботающем таймере, а затем определить корректный результат, используя мажори рование. Любые операции записи в регистр TBR вступают в силу немедленно.
Разрядность регистра TBR
Посредством битов CNTLx Таймер B может быть сконфигурирован как 8 , 10 , 12 или 16 битный таймер. В зависимости от разрядности таймера макси мальное значение счётчика TBR(max) составляет 0FFh, 03FFh, 0FFFh и 0FFFFh соответственно. Данные, загружаемые в регистр TBR в 8 , 10 и 12 битном режи мах, выравниваются вправо с заполнением незначащих битов нулями.
Тактовый сигнал и делитель таймера
Для тактирования таймера могут использоваться системные тактовые сигна лы ACLK и SMCLK или же внешний сигнал (прямой или инвертированный), по даваемый на вывод TBCLK. Источник тактового сигнала задаётся битами TBSSELx регистра TBCTL. Выбранный сигнал поступает на таймер через дели тель, коэффициент деления которого (1, 2, 4 или 8) определяется битами IDx ре гистра TBCTL. При установке бита TBCLR делитель таймера очищается.