MSP430 система команд - Команда EINT
| *EINT | Разрешение (общее) прерываний | |
| Синтаксис | EINT | |
| Операция | 1 -> GIE или (0008h .OR. SR -> SR / .src .OR. dst -> dst) |
|
| Эмуляция | BIS #8,SR | |
| Описание | Все прерывания разрешаются. Константа #08h и регистр статуса SR логически складываются (OR). Результат помещается в регистр статуса SR. | |
| Биты статуса | Биты статуса не изменяются | |
| Биты режима | GIE устанавливается. Биты OSCOFF и CPUOFF не изменяются. | |
| Пример | Бит общего разрешения прерываний (GIE) в регистре статуса устанавливается.
; Подпрограмма обработки прерывания портов с P1.2 по P1.7
; P1IN – это адрес регистра, в котором читаются все биты порта.
; P1IFG – это адрес регистра, в котором фиксируются все события, вызывающие прерывания
;
PUSH.B &P1IN;
BIC.B @SP,&P1IFG; ; сброс только принятых флагов
EINT ; Предварительно установленные флаги прерывания
; порта 0 сохранены на стеке, поэтому
; допустимы другие прерывания
BIT #Mask,@SP
JEQ MaskOK ; переход, если флаги идентичны представленной
; маске
…
MaskOK BIC #Mask,@SP
…
INCD SP ; Вспомогательное действие, обратное команде
; PUSH, использованной в начале процедуры
; обработки прерывания. Корректирует указатель
; стека для правильного выхода из процедуры
; обработки прерывания
RETI
Примечание: разрешение прерыванийКоманда, следующая за командой разрешения прерываний (EINT), выполняется всегда, даже когда ранее поступивший запрос на обслуживание прерывания ожидает, когда прерывания будут разрешены. |
|