Page 304 - 4503
P. 304
Приклад 9.1 Пріоритетність опрацювання
переривань
bsf STATUS, PR0 ;переключаємось на БАНК 1
btfsc INTCON,1 ; перевіряємо ознаку
;зовнішнього переривання
goto EXTERN ; якщо встановлений, то
;переходимо до опрацювання зовнішньої події
btfsc INTCON,2; перевіряємо ознаку
;переривання від таймера
goto TIMER ; якщо встановлений, то
;переходим до відповідного опрацьовувача
btfsc INTCON,0; перевіряємо ознаку
;переривання по зміні вмісту порта В
goto CHANGEB ; якщо встановлений, то
;переходим до відповідного опрацьовувача
btfsc EECON,4 ; перевіряємо ознаку
;переривання від EEPROM
goto EEPROM_WR;якщо встановлений, то
;переходимо до відповідного опрацьовувача
PRO_1
bCf STATUS, PR0;переключаємось на БАНК 0
retfie
Порядок опитування визначає рівень пріоритету
переривань, якщо ознаки виставляються одночасно. Отож,
якщо активізувалися певна зовнішня подія і одночасно із нею
переривання від Таймера 0, то згідно із прикладом 9.1 першим
опрацьовуватиметься зовнішня подія. У даному випадку
наявність відкладеного запиту на переривання від Таймера 0
при поверненню в основну програму призведе до повторного
виклику процедури обробки переривання (за умови, що за цей
304