Прерывания

Время реакции на прерывание для внешних событий, таких как прерывание от вывода INT или порта B, составляет от трех до четырех периодов тактовой частоты.

В подпрограмме обработки прерывания источник прерывания может быть определен по соответствующему биту в регистре INTCON. Этот бит должен быть программно сброшен внутри подпрограммы обработки прерывания для исключения рекурсивных прерываний, флаги запросов прерываний не зависят от соответствующих маскирующих бит и бита общего разрешения GIE. Команда возврата из прерывания RETFIE завершает прерывающую подпрограмму и устанавливает бит GIE, чтобы опять разрешить прерывания.

Внешнее прерывание по выводу RB0/INT осуществляется по перепаду сигнала: либо по перепаду 0/1, если бит INTEDG в регистре OPTION<6> установлен, либо по перепаду 1/0, если бит INTEDG сброшен. Когда на выводе INT фиксируется перепад сигнала, устанавливается бит запроса INTF (INTCON<1>). Это прерывание может быть запрещено сбросом управляющего бита INTE (INTCON<4>). Бит запроса INTF должен быть очищен обработчиком прерывания перед тем, как опять разрешить это прерывание. Прерывание INT может вывести процессор из режима SLEEP, если перед входом в этот режим бит INTE был установлен. Состояние бита GIE при этом определяет, будет ли процессор переходить на подпрограмму прерывания после выхода из режима SLEEP.

Прерывание от таймера/счетчика TMR0. Переполнение счетчика TMR0 (FFh/00h) установит бит запроса T0IF (INTCON<2>). Это прерывание может быть разрешено/запрещено установкой/сбросом бита маски T0IE (INTCON<5>).

Прерывание от порта RB. Любое изменение сигналов на четырех входах порта RB<7…4> установит бит RBIF (INTCON<0>). Это прерывание может быть разрешено/запрещено установкой/сбросом бита маски RBIE (INTCON<3>).

Сохранение состояния при прерываниях

При прерывании в стеке автоматически сохраняется только значение счетчика команд PC. Обычно пользователю также необходимо сохранить некоторые регистры, например регистры W и STATUS. Для временного хранения используются регистры W TEMP и STATUS TEMP.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: