Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MSP430_Final

.pdf
Скачиваний:
41
Добавлен:
31.05.2015
Размер:
2.03 Mб
Скачать

12.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.

 

326 Глава 13. Таймер B

ГЛАВА 13

ТАЙМЕР B

Таймер B представляет собой 16 битный таймер/счётчик, имеющий несколь ко регистров захвата/сравнения. В этой главе описывается работа Таймера B, реа лизованного в микроконтроллерах семейства MSP430x2xx.

13.1. Введение

Таймер B представляет собой 16 битный таймер/счётчик с тремя или семью регистрами захвата/сравнения. Этот таймер может обеспечить несколько каналов захвата/сравнения, генерации сигналов с ШИМ и формирования временных ин тервалов. Кроме того, Таймер B имеет развитую поддержку прерываний. Преры вания могут генерироваться как регистром счётчика таймера (при его переполне нии), так и каждым из регистров захвата/сравнения.

Таймер B имеет следующие особенности:

асинхронный 16 битный таймер/счётчик изменяемой разрядности, имею щий четыре режима работы;

возможность выбора и конфигурирования источника тактового сигнала;

три или семь конфигурируемых регистров захвата/сравнения;

конфигурируемые выходы с возможностью генерации ШИМ сигналов;

регистры защёлки сравнения с двойной буферизацией и синхронизуемой загрузкой;

регистр вектора прерывания для быстрого декодирования всех прерываний таймера.

Блок схема Таймера B приведена на Рис. 13.1.

Примечание. Использование термина «счёт»

В этой главе активно используется термин «счёт». Использование данного терми на означает, что для совершения действия заданное значение должно быть достиг нуто таймером в процессе счёта. Если это значение просто записать в регистр счётчика таймера, то соответствующее действие выполнено не будет.

13.1.1. Сходства и различия с Таймером А

Таймер B полностью идентичен Таймеру A за некоторыми исключениями:

таймер B имеет программируемую разрядность, которая может быть равна 8, 10, 12 или 16 бит;

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 делитель таймера очищается.

13.2. Функционирование Таймера B 329

13.2.2. Запуск таймера

Запуск или перезапуск таймера может быть выполнен двумя способами:

таймер осуществляет счёт, если MCx > 0 и источник тактового сигнала тай мера активен;

в режиме прямого или реверсивного счёта таймер может быть остановлен записью нуля в защёлку TBCL0. Повторный запуск таймера может быть вы полнен в результате загрузки в TBCL0 ненулевого значения. В этом случае таймер начнёт считать в прямом направлении, начиная с нуля.

13.2.3. Управление режимом работы таймера

Таймер имеет четыре режима работы, которые перечисленны в Табл. 13.1: ос танов, прямого счёта, непрерывного счёта и реверсивного счёта. Выбор рабочего режима осуществляется битами MCx.

Таблица 13.1. Режимы работы таймера

MCx

Режим

Описание

 

 

 

00

Останов

Таймер остановлен

 

 

 

01

Прямого счёта

Таймер циклически считает от нуля до значения, записанного в защёл

 

 

ке сравнения TBCL0

 

 

 

10

Непрерывного счёта

Таймер циклически считает от нуля, до значения, определяемого бита

 

 

ми CNTLx

 

 

 

11

Реверсивного счёта

Таймер циклически считает от нуля до значения, записанного в защёл

 

 

ке TBCL0, а затем в обратном направлении до нуля

 

 

 

Режим прямого счёта

Режим прямого счёта используется в том случае, если период таймера должен быть отличным от TBR(max). В этом режиме таймер циклически считает в прямом направлении до тех пор, пока его значение не станет равным содержимому за щёлки сравнения TBCL0, определяющему период счёта, как показано на Рис. 13.2. Длительность периода в тактах равна TBCL0 + 1. Когда значение тай мера становится равным содержимому TBCL0, таймер сбрасывается и счёт начи нается с нуля. Если в момент выбора режима прямого счёта значение таймера бу дет больше числа, находящегося в защёлке TBCL0, то таймер сразу же начнёт счёт с нулевого значения.

TBR (max)

TBCL0

0h

Рис. 13.2. Режим прямого счёта.

330 Глава 13. Таймер B

Флаг прерывания CCIFG, соответствующий регистру TBCCR0, устанавлива ется при достижении таймером в процессе счёта значения, хранящегося в защёл ке TBCL0. Флаг прерывания TBIFG устанавливается при счёте таймера от значе ния, содержащегося в защёлке TBCL0, до нуля (Рис. 13.3).

Тактовый сигнал таймера

Таймер

TBCL0–1 TBCL0

0h

1h

TBCL0–1 TBCL0

0h

Установка TBIFG

Установка TBCCR0 CCIFG

Рис. 13.3. Установка флагов прерываний в режиме прямого счёта.

Изменение регистра периода TBCL0

Если при изменении содержимого регистра защёлки TBCL0 во время работы таймера в случае немедленной загрузки TBCL0 (биты CLLD0 = 00) новый период окажется больше или равен предыдущему периоду или больше текущего значе ния таймера, таймер продолжит счёт до достижения нового значения периода. Если новый период окажется меньше текущего значения таймера, то таймер на чнёт счёт с нуля, однако перед обнулением счётчика может возникнуть дополни тельный отсчёт.

Режим непрерывного счёта

В режиме непрерывного счёта таймер циклически считает в прямом направ

лении от нуля до значения TBR(max), как показано на Рис. 13.4. Защёлка сравне ния TBCL0 используется так же, как и регистры защёлки остальных блоков за

хвата/сравнения.

TBR (max)

0h

Рис. 13.4. Режим непрерывного счёта.

Флаг прерывания TBIFG устанавливается при счёте таймера от значения TBR(max) до нуля (Рис. 13.5).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]