Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
блок таймеров.DOC
Скачиваний:
1
Добавлен:
12.08.2019
Размер:
281.09 Кб
Скачать

9.3.4.3. Команда обратного чтения.

Используйте регистр TMRCON в формате обратного чтения (Рисунок 9-30), чтобы фиксировать значение счетчика и/или состояние одного или более таймеров. Фиксируйте состояние таймера для того, чтобы проверить, в каком режиме функционирования он был запрограммирован, формат уставки, выбор формата чтения/записи и определить, загружена ли в счетчик последняя уставка, записанная в регистр таймера.

Управление таймером (формат обратного считывания) Расширенный Адрес: F043H

TMRCON Адрес PC / АТ: 0043H

Состояние по сбросу: 00H

7 0

1

1

COUNT#

STAT#

CNT2

CNT1

CNT0

-

Номер бита

Обозначение бита

Функция

7-6

-

Запишите единицы в эти биты, чтобы выбрать формат обратного считывания. 00, 01 и 10 не являются корректными опциями для TMRCON в формате обратного считывания

5

COUNT#

Защелка счетчика:

обнуление этого бита запоминает счетчик для каждого выбранного таймера. Используйте биты 1-3, чтобы выбрать один или более таймеров.

4

STAT#

Защелка состояния: обнуление этого бита фиксирует состояние для каждого выбранного таймера. Используйте биты 1-3, чтобы выбрать один или более таймеров.

3

CNT2

Выбор таймера 2:

Если установлен этот бит, действия, предписываемые битами 4 и 5, относятся к таймеру 2. В противном случае, действия не относятся к таймеру 2.

2

CNT1

Выбор таймера 1:

Если установлен этот бит, действия, предписываемые битами 4 и 5, относятся к таймеру 1. В противном случае, действия не относятся к таймеру 1.

1

CNT0

Выбор таймера 0:

Если установлен этот бит, действия, предписываемые битами 4 и 5, относятся к таймеру 0. В противном случае, действия не относятся к таймеру 0

0

-

Резервный. Этот бит не определен.

Рисунок 9-30. Регистр управления таймера (Формат обратного считывания)

Команда обратного считывания может фиксировать значение счетчика и состояние нескольких таймеров. Одна эта команда функционально эквивалентна нескольким командам защелки счетчиков, каждая из которых запоминает значение одного счетчика. Для каждого таймера счетчик и состояние остаются зафиксированными до тех пор, пока они не будут прочитаны, или пока Вы не реконфигурируете таймер. Запирание значения счетчика или состояния таймера автоматически отменяется при чтении, но зафиксированные значения других таймеров остаются, запертыми до тех пор, пока они не будут прочитаны.

После фиксации состояния и значения счетчика таймера командой обратного считывания, чтение TMRn производится в формате состояния (Рисунок 9-31). Последующее чтение TMRn происходит в формате чтения. Если фиксируются и значение счетчика и состояние таймера, то первое чтение TMRn указывает состояние таймера, а следующие один или два (в зависимости от выбора формата чтения таймера) указывают значение счетчика таймера. Если запирается только счетчик таймера, то первые один или два чтения TMRn указывают счетчик таймера. Если таймер запрограммирован на выбор формата чтения с двумя байтами, Вы должны читать два байта.

Таймер n (Формат состояния) Расширенный Адрес: F040H, F041H

TMRn (n = 0-2) F042H

Адрес PC/АТ: 0040H, 0041H

0042H

Состояние по сбросу: XX

7 0

OUTPUT

NULCNT

RW1

RW0

M2

M1

M0

CNTFMT

Номер бита

Обозначе-ние бита

Функция

7

OUTPUT

Состояние выхода:

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

1 = OUTn высокий

0 = OUTn низкий

6

NULCNT

Состояние счетчика:

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

1 = Уставка записана в таймер, но еще не загружена в счетчик

0 = Последняя уставка, записанная в таймер, загружена в счетчик.

5-4

RW1-0

Состояние выбора чтение/запись:

Эти биты указывают на запрограммированный выбор формата чтение/запись таймера.

01 = чтение/запись только младшего байта

10 = чтение/запись только старшего байта

11= чтение/запись сначала младшего байта, а затем старшего байта

3-1

M2-0

Режим:

Эти биты указывают запрограммированный режим функционирования таймера.

000 = режим 0

001 = режим 1

X10 = режим 2

X11 = режим 3

100 = режим 4

101 = режим 5

X - безразлично.

0

CNTFMT

Состояние формата уставки:

Этот бит указывает запрограммированный формат уставки таймера.

0 = двоичный (16 бит)

1 = двоично- десятичное число (4 цифры)

Рисунок 9-31. Регистр n-го таймера ( Формат состояния )

Командой обратного считывания Вы можете одновременно фиксировать и значение счетчика и состояние одного или более таймеров. Функционально – это то же самое, что выдача двух отдельных команд обратного считывания. В этом случае, первая операция чтения регистра этого таймера возвращает зафиксированное состояние этого таймера, независимо от того, что запиралось первым. Следующие одно или два чтения (в зависимости от выбора чтения таймера) возвращает зафиксированное значение счетчика. Последующие чтения возвращают незафиксированное значение счетчика.

Когда таймер получает многократные команды обратного считывания, он игнорирует все, кроме первой команды; состояние/счетчик, которые читает CPU – это состояние/счетчик, зафиксированные первой командой обратного считывания (см. Таблицу 9-5).

Таблица 9-5. Результаты неоднократной выдачи команд обратного считывания без чтения

Последовательность команд

Команда обратного считывания

Результат выполнения команды

1

Запирание счетчика и состояния для 0-го таймера

Для 0-го таймера фиксируются значение счетчика и состояние

2

Запирание состояния для 1-го таймера

Для 1-го таймера фиксируется состояние

3

Запирание состояния для 1-го и 2-го таймеров

Для 2-го таймера фиксируется состояние. Для 1-го таймера команда запирания состояния игнорируется, т.к. она уже была выдана командой 2.

4

Запирание счетчика для 2-го таймера

Для 2-го таймера фиксируется значение счетчика.

5

Запирание счетчика и состояния для 1-го таймера

Для 1-го таймера фиксируется значение счетчика. Для 1-го таймера команда запирания состояния игнорируется, т.к. она уже была выдана командой 2.

6

Запирание счетчика для 0-го таймера

Для 0-го таймера команда запирания счетчика игнорируется, т.к. она была уже выдана командой 2.

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