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

2. Чтение текущего содержимого ce.

Существует 4 варианта чтения текущего содержимого CE.

  1. Чтение выходного регистра счетчика.

(Не считается корректным, так как при таком чтении считывается либо младший байт счетчика, либо старший, либо оба последовательно, то есть считывание происходит в разное время и данные могут быть рассогласованы.)

  1. Приостановка работы канала.

Устанавливаем GATE=0.

  1. Чтение по команде “защелка” .

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

7

6

5

4

3

2

1

0

SC

0 0

X

X

X

X

Канал

CLOзащелка

После выполнения команды операция чтения выполняется, как и в первом случае. Команда “защелка” защелкивает выходной регистр счетчика. Выходной регистр счетчика остается в таком состоянии в таком состоянии до тех пор, пока его не прочитают или не перепрограммируют. Информация из OLможет быть считана в любое время. После чтения выходной регистр счетчика “расщелкивается”, то есть возвращается в состояние сопровождения счетного элемента. Если после “защелки” чтение не выполнено, то следующая “защелка” будет недоступна.

  1. Чтение состояния таймера. (Только Intel8254)

Позволяет прочитать содержимое выходного регистра счетчика и выходного регистра состояния для одного или нескольких каналов. Можем прочитать и содержимое выходного регистра состояния.

Команда: RBC. При выполнении команды чтения состояния, содержимое внутреннего регистра состоянияSRзаносится в выходной регистр состоянияSL, а значение счетного элемента защелкивается в выходном регистре счетчикаOL. Команда чтения может быть выполнена для нескольких каналов одновременно.

Формат команды чтения состояния таймера RBC:

7

6

5

4

3

2

1

0

1 1

CNT2

CNT1

CNT0

0

RBC

Биты:

- 1/0 – не защелкивать/защелкивать выходной регистр счетчика.

- 1/0 – не защелкивать/защелкивать выходной регистр состояния.

CNTi– номер канала, для которого выполняется операция.CNTi= 1/0 – выполнять/не выполнять операцию.

Пример: CEh-все выходные регистры счетчика будут защелкнуты (11001110).

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

Считывание выполняется из адреса регистра канала. Сначала считывается значение из выходного регистра состояния (если было запрошено чтение состояния), а затем из выходного регистра счетчика (если было запрошено защелкивание этого регистра).

Формат байта состояния канала (только Intel8254):

7

6

5

4

3

2

1

0

OUT

Count

RW

MODE

BCD

Биты:

OUT– определяет состояние выхода канала таймера: 1/0 – высокий/низкий уровень.

Count– описывает состояние счетчика: 0/1 – выходной регистр счетчика отражает текущее значение счетного элемента канала/ неопределенное состояние (например, когда счет в канале не выполняется).

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

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