TMP91C824
91C824-30
2008-02-20
(2)
How to release the HALT mode
These halt states can be released by resetting or requesting an interrupt. The
HALT release sources are determined by the combination between the states of
interrupt mask register <IFF2:0> and the HALT modes. The details for releasing the
halt status are shown in Table 3.3.4.
•
Released by requesting an interrupt
The operating released from the HALT mode depends on the interrupt enabled
status. When the interrupt request level set before executing the HALT instruction
exceeds the value of interrupt mask register, the interrupt due to the source is
processed after releasing the HALT mode, and CPU status executing an instruction
that follows the HALT instruction. When the interrupt request level set before
executing the HALT instruction is less than the value of the interrupt mask register,
releasing the HALT mode is not executed. (In non-maskable interrupts, interrupt
processing is processed after releasing the HALT mode regardless of the value of the
mask register.) However only for INT0 to INT3 and INTRTC and INTALM interrupts,
even if the interrupt request level set before executing the HALT instruction is less
than the value of the interrupt mask register, releasing the the HALT mode is
executed. In this case, interrupt processing, and CPU starts executing the instruction
next to the HALT instruction, but the interrupt request flag is held at 1.
Note: Usually, interrupts can release all halts status. However, the interrupts (
NMI
, INT0
to INT3, INTRTC, INTALM0 to INTALM4) which can release the HALT mode may
not be able to do so if they are input during the period CPU is shifting to the HALT
mode (for about 5 clocks of f
FPH
) with IDLE1 or STOP mode (IDLE2 is not
applicable to this case). (In this case, an interrupt request is kept on hold
internally.)
If another interrupt is generated after it has shifted to HALT mode completely, halt
status can be released without difficulty. The priority of this interrupt is compared
with that of the interrupt kept on hold internally, and the interrupt with higher
priority is handled first followed by the other interrupt.
•
Releasing by resetting
Releasing all halt status is executed by resetting.
When the STOP mode is released by reset, it is necessry enough resetting time (See
Table 3.3.5) to set the operation of the oscillator to be stable.
When releasing the HALT mode by resetting, the internal RAM data keeps the
state before the HALT instruction is executed. However the other settings contents
are initialized. (Releasing due to interrupts keeps the state before the HALT
instruction is executed.)