S3F84B8_UM_REV 1.00
5 INTERRUPT STRUCTURE
5-3
5.1.5 S3F84B8 INTERRUPT STRUCTURE
The S3F84B8 microcontroller supports 17 interrupt sources. Every interrupt source has a corresponding interrupt
address. Eight interrupt levels are recognized by the CPU in this device-specific interrupt structure, as shown in
When multiple interrupt levels are active, the interrupt priority register (IPR) determines the order in which
contending interrupts are to be serviced. If multiple interrupts occur within the same interrupt level, the interrupt
with lowest vector address is usually processed first (The relative priorities of multiple interrupts within a single
level are fixed in the hardware).
When the CPU grants an interrupt request, interrupt processing starts. All other interrupts are disabled, and the
program counter value and status flags are pushed to stack. The starting address of service routine is fetched
from the appropriate vector address (plus the next 8-bit value to concatenate full 16-bit address) and the service
routine is executed.
Vectors
Sources
Levels
Reset/Clear
Timer A overflow
IRQ0
Timer A match/capture
H/W,S/W
S/W
NOTE:
Within a given interrupt level, the low vector address has high priority.
For example, D0H has higher priority than D2H within the level IRQ0. The priorities
within each level are set at the factory.
Basic timer overflow
100H
RESET
H/W
P0.0 external interrupt(INT0)
P0.1 external interrupt(INT1)
IRQ4
S/W
S/W
IRQ2
Timer D overflow
Timer D match
H/W,S/W
S/W
Timer C match
S/W
IRQ1
PWM Counter Overflow
IRQ3
H/W, S/W
P0.3 external interrupt(INT2)
P0.4 external interrupt(INT3)
S/W
S/W
P0.5 external interrupt(INT4) S/W
P0.6 external interrupt(INT5) S/W
CMP0 Interrupt
CMP1 Interrupt
CMP2 Interrupt
S/W
S/W
S/W
IRQ5
ADC Interrupt
S/W
CMP3 Interrupt
S/W
D0H
D2H
D4H
D6H
D8H
DAH
DCH
DEH
E0H
E2H
E4H
E6H
E8H
EAH
ECH
EEH
F0H
Figure 5-2 S3F84B8 Interrupt Structure