MB89960 series
CHAPTER 3 CPU
41
3
(1) After a reset, all interrupt requests are disabled.
Initialize the peripheral functions that are to generate interrupts in the peripheral function
initialization program, set the interrupt levels in the appropriate interrupt level setting
registers (ILR1, 2, 3), and start peripheral operation.
The interrupt level can be set to 1, 2 or 3. Level 1 is the highest priority, followed by level 2.
Setting level 3 disables the interrupt for that peripheral function.
(2) Execute the main program (for multiple interrupts, execute the interrupt processing routine).
(3) The interrupt request flag bit (request FF) for a peripheral function is set to “1” when the
peripheral function generates a source of interrupt. If the interrupt request enable bit for the
peripheral function is set to “enable” (enable FF = “1”), the peripheral function outputs the
interrupt request to the interrupt controller.
(4) The interrupt controller continuously monitors for interrupt requests from the peripheral
functions and passes the interrupt level of the current interrupt request with the highest
interrupt level to the CPU. The interrupt controller also evaluates the priority order if requests
with the same level are present simultaneously.
(5) If the interrupt level received by the CPU has a higher priority (a lower level value) than the
level set in the interrupt level bits of the condition code register (CCR: IL1, 0), the CPU
checks the interrupt enable flag (CCR: I) and receives the interrupt if interrupts are enabled
(CCR: I = “1”).
(6) The CPU saves the contents of the program counter (PC) and program status (PS) on the
stack, reads the top address of the interrupt processing routine from the interrupt vector table
for the interrupt, updates the interrupt level bits in the condition code register (CCR: IL1, 0)
with the received interrupt level, and starts execution of the interrupt processing routine.
(7) Finally, on execution of the RETI instruction, the CPU restores the program counter (PC) and
program status (PS) values saved on the stack and resumes execution from the instruction
following the last instruction executed before the interrupt.
Caution: As the interrupt request flag bit of a peripheral function is not cleared automatically
when an interrupt request is received, the bit must be cleared by the interrupt
processing program (normally, by writing “0” to the interrupt request flag bit).
Note: If the interrupt request flag bit is cleared at the top of the interrupt processing routine, the
peripheral function that generated the interrupt becomes able to generate another
interrupt during execution of the interrupt processing routine.