Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4_Taimernaja_podsist_obshchee_ADuC.doc
Скачиваний:
1
Добавлен:
18.09.2019
Размер:
1.44 Mб
Скачать

Структура таймерного канала в микросистеме aDuC70xx

Таймер1 это 32-битовый универсальный таймер/счетчик общего назначения с предделителем.

В качестве входной частоты предделителя по выбору программиста можно использовать частоту ядра, либо частоту 32 КГц, либо внешнюю частоту с входов параллельного порта P1.0 либо P0.6.

Работает по выбору программиста, как на сложение, так и на вычитание.

Счетчик можно сконфигурировать как обычный двоичный, либо как работающий в режиме «Часы:Минуты:Секунды:СотыеДоли-Секунды.

Структура Таймера1 изображена на рисунке.

Таймер1 имеет регистр захвата (Capture), в котором может фиксироваться значение счетчика Таймера1 в момент возникновения выбранного программистом запроса прерывания. Это позволяет с высокой точностью зафиксировать момент возникновения выбранного запроса. Кроме перечисленного, Таймер1 можно использовать для периодического запуска аналого-цифрового преобразования.

Интерфейс Таймера1 включает пять регистров СФ:

T1LD – Адрес: 0xFFFF0320. Разрядность: 32 бит. Доступ: R/W. Регистр уставки, из которого по переполнению может происходить перезагрузка счетчика.

T1VAL – Адрес: 0xFFFF0324. Разрядность: 32 бит. Доступ: R/o. Из этого адреса можно считать текущее содержимое счетчика Таймера1.

T1CON – Адрес: 0xFFFF0328. Разрядность: 32 бит. Доступ: R/W

T1CLRI – Адрес: 0xFFFF032C. Разрядность: 8 бит. Доступ: R/W. Любая запись в него ‑ сброс запроса прерывания от Таймера1.

T1CAP – Адрес: 0xFFFF0330. Разрядность: 32 бит. Доступ: R/W. Из этого регистра можно считать значение времени, автоматически «захваченное» при возникновении выбранного программистом запроса прерывания.

Регистр управления Таймером1 T1CON

Биты

Описание

31..18

Резервированы

17

Разрешить (1) или запретить (0) захват момента времени по выбранному событию (запросу прерывания)

16..12

Выбор события, вызывающего захват времени (см. табл. для подсистемы прерываний)

11..9

Выбор источника 000 – частота ядра; 001 – частота 32 768 Гц; 010 – фронт импульса на входе P1.0 011 – фронт импульса на входе P0.6

8

Направление счета: сложение (1) или вычитание (0 – значение по умолчанию)

7

Разрешить (1) работу Таймера1 или запретить (0 – значение по умолчанию)

6

Режим работы Таймера1: свободный счёт (0 – значение по умолчанию) или с автоперезагрузкой (1)

5..4

Формат счета: 00 – двоичный 10 – (0….23 Часа): Минуты: Секунды: (1/128)Доли 11 ‑ (0..255 Часов): Минуты: Секунды: (1/128)Доли

3..0

Коэффициент предделителя: 0000 – 1, 0100 – 16, 1000 – 256, 1111 – 32768

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

//=== Таймерная подсистема =====

// Определение констант для настройки Tm1

// Регистрация события

#define Event (1<<17)

// Входная частота

#define F_P10_1 (10<<9) // Биты 11-9 в регистре управления таймера

#define F_P06_1 (11<<9)

#define F32K_1 (1<<9)

#define FCore_1 0

// Направление счета

#define Up_1 (1<<8) // Бит 8

#define Down_1 0

// Пуск

#define En_1 (1<<7) // Бит 7

#define Dis_1 0

// Перезагрузка

#define Rld_1 (1<<6) // Бит 6

#define Free_1 0

// Режим счета

#define H24ms_1 (10<<4) // Биты 5-4

#define H256ms_1 (11<<4) // Биты 5-4

#define Bin_1 0

// Предделитель

#define P32K_1 0x0F // Биты 3-0

#define P256_1 (1<<3) // Биты 3-0

#define P16_1 (1<<2)

#define P1_1 0

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