© 2000 Scenix Semiconductor, Inc. All rights reserved.
- 24 -
www.scenix.com
SX48BD/SX52BD/SX52BD75/SX52BD100
All interrupts are global in nature; that is, no interrupt has
priority over another. Interrupts are handled sequentially.
Figure7-2 shows the interrupt processing sequence.
Once an interrupt is acknowledged, all subsequent inter-
rupts are disabled until return from servicing the current
interrupt. The PC is pushed onto the single level interrupt
stack, and the contents of the FSR, STATUS, MODE,
and W registers are saved in their corresponding shadow
registers. The status bits PA2, PA1, and PA0 are cleared
after STATUS has been saved in its shadow register.
The interrupt logic has its own single-level stack and is
not part of the CALL subroutine stack. The vector for the
interrupt service routine is address 0.
Once in the interrupt service routine, the user program
must poll all interrupt pending bits to determine the
source of the interrupt. The interrupt service routine
should clear the corresponding interrupt pending flag.
Normally it is a requirement for the user program to pro-
cess every interrupt without missing any. To ensure this,
the longest path through the interrupt routine must take
less time than the shortest possible delay between inter-
rupts.
Using more than one interrupt, such as multiple external
interrupts or both RTCC and external interrupts, can
result in missed or, at best, jittery interrupt handling
should one occur during the processing of another. When
handling external interrupts, the interrupt routine should
clear at least one pending register bit. The bit that is
cleared should represent the interrupt being handled in
order for the next interrupt to trigger.
Upon return from the interrupt service routine, the con-
tents of PC, FSR, STATUS, MODE, and W registers are
restored from their corresponding shadow registers. The
interrupt service routine should end with instructions such
as RETI or RETIW. RETI pops the interrupt stack and the
special shadow registers used for storing W, STATUS,
MODE, and FSR (preserved during interrupt handling).
RETIW behaves like RETI but also adds W to RTCC.
The interrupt return instruction enables the global inter-
rupts.
If a MIWU interrupt occurs during a pre-existing interrupt
service routine, the MIWU interrupt flag is set immedi-
ately, and the MIWU interrupt is serviced upon comple-
tion of the pre-existing interrupt service routine.
Figure 7-2. Interrupt Processing
Interrupt
PC
RETI
PC
PC
W
Register
000h
Address 000h
Program
Memory
Interrupt
Service
Routine
STATUS
Register
FSR
Register
W
Shadow Register
STATUS
Shadow Register
FSR
Shadow Register
W
Register
STATUS
Register
FSR
Register
W
Shadow Register
STATUS
Shadow Register
FSR
Shadow Register
Stack
Interrupt
Stack
Note:The interrupt logic has its own single-level
stack and is not part of the CALL subroutine stack.
MODE
Register
MODE
Shadow Register
MODE
Register
MODE
Shadow Register