12.3. Принцип действия
Чтобы генерация прерываний стала возможной, необходимо установить бит общего разрешения прерываний (бит I) в регистре статуса ЦПУ. После подтверждения прерывания, теряется возможность сброса бита I. Кроме того, перед тем как использовать тот или иной уровень прерываний, его работу нужно разрешить.
После разрешения прерывания и обнаружения его условия, PMIC-контроллер принимает запрос на обработку прерывания. Далее, в зависимости от уровня и приоритета, прерывание переходит либо в статус "подтверждено", либо в статус "отправлено". Если прерывание подтверждается, то в счетчик программы загружается вектор прерывания. По адресу вектора прерывания обычно находится команда перехода к процедуре обработки прерывания. После выхода из процедуры обработки прерывания, возобновляется выполнение программы с того же места, где возникло прерывание. Перед переходом к обслуживанию отправленного прерывания выполняется одна инструкция.
Регистр статуса PMIC-контроллера содержит всю необходимую информацию о состоянии, которая гарантирует возврат PMIC-контроллера на корректный уровень прерывания после выполнения инструкции RETI (возврат из прерывания) в конце процедуры обработки прерывания. Во время выхода из прерывания, PMIC-контроллер перейдет в то состояние, в котором он был перед вводом прерывания. Автоматическое сохранение регистра статуса (SREG) при поступлении запроса на прерывание не предусмотрено. Инструкцию RET (возврат из подпрограммы) нельзя использовать для возврата из процедуры обработки прерывания, т.к. она не возвращает PMIC-контроллер в корректное состояние.
|