Программирование модемов


Особенности обработки аппаратных прерываний - часть 6


Для маскирования какого-либо уровня прерывания надо записать в регистр маски IMR по адресу 21h или A1h единицу в соответствующий разряд регистра.

Команды обработки конца прерывания приведем в виде таблицы:

Биты байта команды

D7 D6 D5 D4 D3 D2 D1 D0

Описание

0 0 1 0 0 0 0 0

Обычный конец прерывания

0 1 1 0 0 B2 B1 B0

Специальный конец прерывания, B0...B2 - двоично-десятичный код сбрасываемого разряда в регистре обслуживания прерывания ISR

1 0 1 0 0 X X X

Циклический сдвиг уровней приоритета с обычным концом прерывания. Дно приоритетного кольца устанавливается по обслуженному запросу

1 1 1 0 0 B2 B1 B0

Циклический сдвиг уровней приоритета со специальным концом прерывания, B0...B2 - двоично-десятичный код дна приоритетного кольца

1 0 0 0 0 X X X

Разрешение вращения уровней приоритета

0 0 0 0 0 X X X

Сброс разрешения вращения уровней приоритета

1 1 0 0 0 B2 B1 B0

Циклический сдвиг уровней приоритета без завершения прерывания, B0...B2 - двоично-десятичный код дна приоритетного клоьца

Команды третьего типа выдаются также в порты с адресами 20h и A0h. Они имеют следующий формат:

Биты байта команды

D7 D6 D5 D4 D3 D2 D1 D0

Описание

0 0 0 0 1 1 X X

Установка режима опроса

0 0 0 0 1 0 1 1

Разрешение чтения регистра ISR

0 0 0 0 1 0 1 0

Разрешение чтения регистра IRR

0 1 1 0 1 0 0 0

Разрешение триггера специального маскирования

0 1 0 0 1 0 0 0

Сброс триггера специального маскирования

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

Команда специального конца прерывания устанавливает в нулевое состояние тот разряд ISR, номер которого указан в разрядах B0...B2 команды.

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

Аналогично работает команда циклического сдвига уровней приоритета со специальным концом прерывания, только низший уровень приоритета присваивается тому входу IRQ, номер которого указан в разрядах B0...B2 команды.




Начало  Назад  Вперед