logo
HCS12 с применением языка С - royallib

4.10.5. Регистры подсистемы прерывания

Два регистра специальных функций используются для задания режимов подсистемы прерывания:

• INTCR — регистр управления внешним прерыванием по входу

;

• HPRIO — регистр уровня приоритета.

Формат регистра INTCR приведен на рис. 4.18. Для того чтобы разрешить прерывание по входу

, необходимо командой CLI сбросить глобальную маску прерывания I в регистре признаков CCR центрального процессора и установить в 1 бит разрешения внешнего прерывания IRQEN в регистре INTCR (бит 6). Бит 7 регистра INTCR, именуемый IRQE, конфигурирует линию 

  на прием запроса при низком уровне сигнала (при IRQE = 0) или только по перепаду сигнала с 1 на 0 (при IRQE = 1). В первом случае, если активный низкий уровень на входе

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

  не установится логическая 1. Во втором случае, когда внешнее событие фиксируется только по перепаду сигнала 

  из 1 в 0, в аналогичных условиях будет распознан только один запрос на прерывание, соответственно и подпрограмма прерывания будет исполнена только один раз.

Рис. 4.20.  Формат регистра HPRIO

Регистр уровня приоритета HPRIO предназначается для изменения уровня приоритета одного из источников маскируемых прерываний. Формат регистра HPRIO приведен на рис. 4.20. Если в регистр записать число, которое указано в правой колонке таблицы рис. 4.17, то соответствующий запрос получит наивысший приоритет среди группы маскируемых прерываний. В состоянии сброса МК регистр HPRIO устанавливается в $F2, что соответствует наивысшему уровню приоритета для запроса от внешнего устройства по входу

, что и отражено в таблице векторов рис. 4.17.