Скачиваний:
28
Добавлен:
01.05.2014
Размер:
7.32 Mб
Скачать

4.11. Предоставление pts Прерывания

После того, как Вы назначаете прерывание к PTS, Вы должны разрешить и PTS и индивидуальное прерывание. Бит разрешения PTS в Слове Состояния Процессора (PSW.2) глобально разрешает или запрещает PTS. Команда EPTS устанавливает бит PSW.2, допуская PTS. Команда DPTS очищает этот бит, отключая PTS. Биты в INT_MASK и INT_MASK1 разрешают или запрещают индивидуальные прерывания PTS ( см.

табл.3 ).

4.12. Предоставление Стандартных Прерываний

Когда Вы назначаете прерывание стандартной сервисной программе обслуживания прерывания, Вы должны разрешить и обслуживание прерывания и индивидуальное прерывание. Бит Глобального разрешения прерывания (I) в Слове Состояния

Процессора (PSW.1) глобально разрешает или запрещает обслуживание всех маскируемых прерываний. Команда EI устанавливает бит PSW.1,разрешая обслуживание прерываний. Команда DI очищает этот бит, отключая обслуживание прерываний.

Биты в INT_MASK и INT_MASK1 индивидуально разрешают или запрещают прерывания (см. табл.3 ). Прерывание,которое происходит во время обслуживания прерывания, глобально

запрещается (PSW.1 сбрасывается )и задерживается в регистрах захвата прерывания.

4.13. Выбор Источников Прерывания

Каждый из пяти следующих источников прерывания (HSI FIFO Full, EXTINT1, Receive, Transmit, Timer 2 Overflow) могут генерировать два различных прерывания:

- 8096BH-совместимое прерывание;

- отдельное прерывание для KC;

В любом случае,надо разрешать только одно прерывание для каждого источника. То есть бит маски должен быть установлен только для одного из двух возможных прерываний. На рис.10 приведены источники прерывания для каждого вектора прерывания. В табл.3 приведены значения битов регистра IOC1, которые выбирают каждый из источников.

4.14. Регистры Маскирования Прерываний

Регистры маскирования прерывания, INT_MASK(08H) и INT_MASK1(13H), разрешают или запрещают(маскируют) индивидуальные прерывания. За исключением бита Немаскируемого Прерывания (NMI) ( INT_MASK1.7 ), установка соответствующего бита разрешает соответствующее прерывание ; очистка соответственно запрещает прерывание. Когда устройство сбрасывается, регистры маски прерывания очищаются (запрещая прерывания ). Регистры читаемы и записываемы во всех окнах. Команда PUSHA сохраняет содержимое этих регистров в стеке, а POPA восстанавливает.

4.15. Регистры Захвата Прерывания

Когда Детектор Перехода обнаруживает прерывание, он устанавливает соответствующий бит в INT_PEND(09H) или INT_PEND1(12H) регистрах,даже если индивидуальное прерывание отключено (замаскировано). Бит Захвата очищается, когда программа переходит к подпрограмме обработки прерывания( стандартного или PTS прерывания ). INT_PEND и INT_PEND1 можно читать, чтобы определить, какие поступили прерывания.

С помощью программного обеспечения, биты в этих регистрах можно устанавливать или сбрасывать, генерируя

прерывания. Однако надо быть осторожным при записи кода в эти регистры. Например, последовательность команд, которая очищает бит захвата, может привести к подтверждению прерывания после того, как последовательность начнется, но прежде, чем бит фактически очистится.

В этом случае происходит частичный цикл прерывания в 5 тактов. То-есть процесс прерывания начинается, но никогда не переходит к программе обработки прерывания.

Такую задержку можно предотвратить, делая код неделимым, то есть прерывания не будут подтверждаться, пока выполняется этот код. Самый простой способ сделать это состoит в том, чтобы использовать логические

команды в двух или трех операндном формате, например:

ANDB INT_PEND, #01111111B ; Очищает прерывание EXTINT

ORB INT_PEND, #10000000B;Устанавливает прерывание EXTINT

8XC196KC/KD не подтверждает прерывания в течение выполнения этих команд "чтение-модификация-запись".

По сбросу INT_PEND, INT_PEND1 = 0000 0000

Рис.10 Источники Прерывания

Соседние файлы в папке Лабораторные работы по МПС