Карта программно доступных регистров ПИТ
Регистр | Разрядность | Тип доступа | Относительный адрес | ||
Канал 0 | Канал 1 | Канал 2 | |||
Входной регистр счетчика CR | запись | ||||
Выходной регистр счетчика OL | чтение | ||||
Выходной регистр состояния SL | чтение | ||||
Регистр управляющего байта CBR | запись |
7.2 Состав и назначение регистров каналов.
Управление:
CBR (Control Byte Register) – регистр управляющего байта. 8 разрядов, относительный адрес – 3 для любого канала, номер канала должен задаваться в формате управляющего байта.
Статус/состояние:
SR (Status Register) – внутренний регистр состояния, процессору не доступен, хранит режим работы канала (состояние выхода OUT, состояние счетчика).
SL (Status Latch) – выходной регистр состояния. Предназначен для чтения состояния таймера и имеется только в Intel 8254. Информация из SR может записываться в SL по команде процессора.
Для счета:
CR (Count Register) – входной регистр счетчика. Предназначен для хранения начального значения счетчика канала, т.е. константы пересчета. 16 – разрядный, доступен ЦП для записи. Содержимое CR может записываться в счетный элемент CE, если это необходимо в текущем режиме работы.
|
|
CE (Counter Element) – содержимое уменьшается с каждым импульсом на входе CLK, если GATE = 1. ЦП не доступен. В зависимости от режима работы таймера, тем или иным способом изменяется OUT.
OL (Output Latch) – выходной регистр счетчика, всегда доступен ЦП для чтения. Может использоваться для запоминания содержимого CE без остановки счета.
7.3 Формат регистров таймера.
CBR – определяет формат счета, режим работы канала, порядок загрузки констант во входной регистр счетчика и порядок чтения содержимого CE из OL.
SC | RW | MODE | BCD |
BCD – определяет формат счета: если BCD =1, то двоично-десятичный формат; если BCD =0, то двоичный формат. В двоичном формате константа задается в диапазоне 0-65535, в двоично-десятичном константа задается в диапазоне 0-9999. Значения константы N =0: в двоичном формате: 65536 (216), в двоично-десятичном формате: 1000 (104).
MODE – определяет режим работы сигнала:
Режим 0 - прерывания по концу счета. | |
Режим 1 - аппаратно-перезапускаемый одновибратор. | |
X 10 | Режим 2 – импульсный генератор. |
X 11 | Режим 3 – генератор меандра. |
Режим 4 – программно-запускаемый одновибратор. | |
Режим 5 – аппаратно-запускаемый одновибратор. |
RW – порядок загрузки констант во входной регистр счетчика и порядок чтения счетного элемента из OL (выходного регистра счетчика).
Команда фиксации счетного элемента в выходном регистре счетчика. | |
Константа задана только младшим байтом (запись/чтение только младшего байта). | |
Константа задана только старшим байтом (запись/чтение только старшего байта). | |
Запись/чтение сначала младшего, затем старшего байта. |
SC – определяет номер канала или команду чтения состояния таймера.
|
|
Канал 0 | |
Канал 1 | |
Канал 2 | |
Чтение состояния таймера |
Команда фиксации содержимого счетного элемента в выходном регистре.
SC | 0 0 (RW) | X | X | X | X |
Фиксация содержимого счетного элемента в выходном регистре счетчика.
Команда чтения состояния таймера:
1 1 | Count | Status | CNT 2 | CNT 1 | CNT 0 |
Команда может быть выполнена только в Intel 8254. Команда позволяет выполнить для одного, нескольких или всех каналов следующие действия:
1. Фиксация содержимого счетчика.
2. Фиксация статусного состояния.
Count – защелкивать или нет выходные регистры счетчика (0 – да, 1 – нет).
Status - защелкивать или нет статусные регистры счетчика (0 – да, 1 – нет).
CNT 2, CNT 1, CNT 0 – определяет номера каналов, в которых необходимо выполнить данную операцию.
Например: 11001110 – защелкивание выходного регистра счетчика и статусного регистра по всем каналам.