Помощь в написании студенческих работ
Антистрессовый сервис

Методика программирования работы каналов таймера

РефератПомощь в написанииУзнать стоимостьмоей работы

Выходной регистр счетчика можно читать в любой момент времени (на лету). При таком чтении считывается младший байт счетчика, либо старший байт (если константа задана в виде одного байта), либо сначала младший, а затем старший байты (если константа задана в виде 16-разрядного слова), как это определено режимом чтения-записи, указанном в управляющем байте канала при его инициализации. Необходимо… Читать ещё >

Методика программирования работы каналов таймера (реферат, курсовая, диплом, контрольная)

Программирование каналов ПИТ включает:

  • • инициализацию одного или нескольких каналов;
  • • чтение текущего значения счетного элемента таймера СЕ;
  • • чтение состояния таймера (только Intel 8254).

Инициализация ПИТ включает:

  • • запись управляющих байтов, определяющих режимы работы каналов, в регистр управляющего байта CBR;
  • • запись констант пересчета во входные регистры счетчиков CR;

Управляющие слова загружаются в один тот же регистр CBR. Адрес канала указывается в самом формате управляющего байта СВ. Управляющие слова каналов сохраняются на все время работы до следующего программирования. Константа пересчета может быть задана одним байтом (младшим или старшим) или 16-разрядным словом, как определено в поле RWуправляющего байта. Константа пересчета загружается во входной регистр счетчика выбранного канала CR. В процессе работы канала константа пересчета может загружаться многократно, если это необходимо по условиям функционирования канала.

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

  • 1) загрузка регистра управляющего байта CBR должна опережать загрузку константы пересчета;
  • 2) загрузка константы пересчета во входной регистр счетчика CR всегда должна выполняться до конца, как это определено полем RW.

Возможны два варианта программирования каналов:

  • 1) загрузка в любой последовательности сначала всех управляющих слов в регистр управляющего байта CBR, затем всех констант пересчета во входные регистры счетчиков CR;
  • 2) загрузка регистра управляющего байта CBR для выбранного канала, а затем константы пересчета во входной регистр счетчика CR для того же канала.

Сразу после программирования канала таймер начнет выполнять заданную функцию.

Чтение текущего значения счетного элемента СЕ. Существуют четыре варианта чтения текущего содержимого счетного элемента. В процессе работы ПИТ внутренний счетный элемент СЕ любого канала отображается в выходном регистре счетчика OL. Это означает, что содержимое выходного регистра счетчика идентично содержимому внутреннего счетного элемента.

  • 1. Выходной регистр счетчика можно читать в любой момент времени (на лету). При таком чтении считывается младший байт счетчика, либо старший байт (если константа задана в виде одного байта), либо сначала младший, а затем старший байты (если константа задана в виде 16-разрядного слова), как это определено режимом чтения-записи, указанном в управляющем байте канала при его инициализации. Необходимо, однако, помнить, что операция чтения должна быть выполнена до конца. Такой метод чтения текущего содержимого счетного элемента канала (на лету) не считается корректным, так как значения младшего и старшего байта счетчика считываются в разные моменты времени и могут быть рассогласованы между собой.
  • 2. Приостановка работы канала с помощью сигнала GATE = 0 и считывание значения выходного регистра счетчика OL.
  • 3. Чтение по команде CLO («Защелка») позволяет прочитать состояние СЕ в любой момент времени без остановки счета. Команда загружается в ПИТ так же, как управляющий байт CBR и имеет формат, представленный ниже.

Номер бита.

Назначение бита.

SC

X.

X.

X.

X.

Поле SC определяет номер канала, для которого выполняется команда CLO, биты, обозначенные Х} не кодируются в данном сообщении (обычно 0). После загрузки команды CLO «Защелка» операция чтения выполняется так же, как в первом случае. Фактически команда CLO защелкивает выходной регистр счетчика OL, и он перестает сопровождать внутренний счетный элемент. Выходной регистр счетчика OL остается в таком состоянии до тех пор, пока не будет считан или пока соответствующий канал не будет перепрограммирован. Информация из OL может быть считана в любое время.

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

  • 4. Чтение состояния таймера RBC — read backward count (только Intel 8254). Данная команда позволяет прочитать следующие параметры любого канала или нескольких каналов:
    • • текущее значение выходного регистра состояния 57?;
    • • текущее значение счетного элемента СЕ (вариант 4 чтения счетного элемента).

При выполнении команды чтения состояния RBC содержимое внутреннего регистра состояния SR заносится в выходной регистр состояния 5L, а значение счетного элемента СЕ защелкивается в выходном регистре счетчика OL.

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

Номер

Значение.

Count

Status

CNT2

CNT1

CNTO

Биты:

  • • 7, 6 — код команды чтение состояния RBC (read backward count);
  • Count указывает, должны ли защелкиваться выходные регистры счетчиков OL: 0—1 — защелкнуть/не защелкивать;
  • Status определяет необходимость защелкивания выходных регистров состояния SL: 0—1 — защелкнуть/не защелкивать;
  • CNT2, CNT1, CNT0 указывают каналы таймера, для которых выполняется защелкивание выходных регистров: 1−0 — выполнить оиерацию/не выполнять.

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

Сразу после записи в регистр управляющего байта CRB команды чтения состояния RBC для каждого из указанных каналов таймера выполняются следующие действия:

  • • в выходной регистр состояния канала SL заносится информация о состоянии канала SR
  • • в выходном регистре счетчика OL защелкивается текущее значение счетного элемента СЕ.

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

Формат байта состояния канала:

Номер

Значение.

OUT

Count

RW

Mode

BCD

Биты:

  • OUT определяет состояние выхода канала таймера: 1−0 — высокий/ низкий уровень;
  • Count описывает состояние счетчика: 0−1 — выходной регистр счетчика отражает текущее значение счетного элемента канала/неопределениое состояние (например, когда счет в канале не выполнялся);
  • • остальные биты аналогичны соответствующим битам, задаваемым в управляющем байте при инициализации канала.
Показать весь текст
Заполнить форму текущей работой