Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / Lab_moto / 5.doc
Скачиваний:
18
Добавлен:
16.04.2013
Размер:
229.38 Кб
Скачать

Управляющий регистр таймера (tcr).

Управлящий регистр таймера (TCR), находящийся по адресу $12, содержит 5 управляющих битов, из которых три бита (ICIE, OCIE и TOIE) отвечают за разрешение прерываний от таймера (соответственно ICI, OCI и TOI), бит IEDG используется в функции входной фиксации, а бит OLVL применяется при выходном сравнении. Каждому из трех бит управления прерываниями соответствует флаг статуса ICF, OCF и TOF в регистре статуса таймера TSR.

Управляющий регистр TCR.

Название

ICIE

OCIE

TOIE

0

0

0

IEDG

OLVL

Установка после RESET

0

0

0

0

0

0

-

0

ICIE-бит запрета/разрешения прерывания при входной фиксации,

·-при ICIE=1-прерывание разрешено,

·-при ICIE=0-прерывание запрещено,

OCIE-бит запрета/разрешения прерывания при выходном сравнении,

·-при ОCIE=1-прерывание разрешено,

·-при OCIE=0-прерывание запрещено,

TOIE-бит запрета/разрешения прерывания при переполнении таймера,

·-при TOIE=1-прерывание разрешено,

·-при TOIE=0-прерывание запрещено,

IEDG-бит определяет, по фронту или по спаду импульса на TCAP будет запоминаться содержимое счетчика в регистре входной фиксации,

·-при IEDG=1-фронт,

·-при IEDG=0-спад

OLVL-бит определяет, какой уровень появится на выводе TCMP при очередном выходном сравнении.

·-при OLVL=1-высокий уровень,

·-при OLVL=0-низкий уровень.

Регистр статуса таймера (tsr).

Регистр статуса таймера находится по адресу $13, предназначен только для чтения и содержит три флага, каждый из которых относится к определенному прерыванию.

Регистр статуса TSR.

Назначение

ICF

OCF

TOF

0

0

0

0

0

Установка после RESET

U*

U

U

0

0

0

0

0

* U-состояние не определено

ICF-флаг входной фиксации,

·-флаг устанавливается, когда зафиксирован входной сигнал соответствующей полярности;

·-флаг сбрасывается при чтении регистра TSR ($13) с последующим считыванием младшего байта регистра ICR ($15);

OCF-флаг выходного сравнения,

·-флаг устанавливается, когда значение в регистре выходного сравнения совпадает со значением в счетчике;

·-флаг сбрасывается при чтении регистра TSR ($13) с последующей записью в младший байт регистра OCR ($17);

TOF-флаг переполнения таймера,

·-флаг устанавливается при переходе счетчика со значения $FFFF на $0000;

·-флаг сбрасывается при чтении регистра TSR ($13) с последующим считыванием младшего байта cчетчика ($19);

Для того, чтобы сбросить какой-либо из битов статуса, необходимо произвести две операции: во-первых, обратиться к регистру статуса TSR, во-вторых, обратиться к регистру, соответствующему определенному биту статуса (например, для бита ICF это регистр ICR).

При использовании функции переполнения таймера и обращениях к счетчику в различное время могут возникнуть проблемы, связанные со сбросом флага переполнения. Это может произойти в одном из двух случаев: либо регистр статуса был прочитан в тот момент, когда флаг TOF был установлен, либо младший бит счетчика был прочитан без цели воздействовать на флаг переполнения. Эти возможности необходимо отслеживать при написании программ.

Особо следует подчеркнуть, что в микроконтроллере предусмотрен только один вектор прерывания от таймера, расположенный по адресам $1FF8 (старший байт) и $1FF9 (младший байт). Тем не менее, если все прерывания в блоке таймера будут разрешены, возможна передача управления по этому вектору по трем событиям:

  • прерывание по переполнению счетчика таймера;

  • прерывание от устройства входной фиксации;

  • прерывание от устройства выходного сравнения.

Следовательно, задача определения события, которое привело к инициированию прерывания, ложится на программиста.Это можно определить посредством проверки соответствующих битов в регистре статуса таймера TSR.

Соседние файлы в папке Lab_moto