HD404849 Series
19
Interrupts
The MCU has ten interrupt sources: four external signals (
INT
0
,
INT
1
,
INT
2
, INT
3
), four timer/counters
(timers A, B, C, and D), serial interface, and A/D converter.
An interrupt request flag (IF), interrupt mask (IM), and vector address are provided for each interrupt
source, and an interrupt enable flag (IE) controls the entire interrupt process.
Some vector addresses are shared by two different interrupts. They are timer B and INT
2
, timer C and
INT
3
, and A/D converter and serial interface interrupts. So the type of request that has occurred must be
checked at the beginning of interrupt processing.
Interrupt Control Bits and Interrupt Processing:
Locations $000 to $003 and $022 to $023 in RAM are
reserved for the interrupt control bits which can be accessed by RAM bit manipulation instructions.
The interrupt request flag (IF) cannot be set by software. MCU reset initializes the interrupt enable flag
(IE) and the IF to 0 and the interrupt mask (IM) to 1.
A block diagram of the interrupt control circuit is shown in figure 9, interrupt priorities and vector
addresses are listed in table 2, and interrupt processing conditions for the ten interrupt sources are listed in
table 3.
An interrupt request occurs when the IF is set to 1 and the IM is set to 0. If the IE is 1 at that point, the
interrupt is processed. A priority programmable logic array (PLA) generates the vector address assigned to
that interrupt source.
The interrupt processing sequence is shown in figure 10 and an interrupt processing flowchart is shown in
figure 11. After an interrupt is acknowledged, the previous instruction is completed in the first cycle. The
IE is reset in the second cycle, the carry, status, and program counter values are pushed onto the stack
during the second and third cycles, and the program jumps to the vector address to execute the instruction
in the third cycle.
Program the JMPL instruction at each vector address, to branch the program to the start address of the
interrupt program, and reset the IF by a software instruction within the interrupt program.
Table 2 Vector Addresses and Interrupt Priorities
Reset/Interrupt
RESET
,
STOPC
*
INT
0
INT
1
Timer A
Timer B, INT
2
Timer C, INT
3
Timer D
A/D, Serial
Note:
*
The
STOPC
interrupt request is valid only in stop mode.
Priority
—
1
2
3
4
5
6
7
Vector Address
$0000
$0002
$0004
$0006
$0008
$000A
$000C
$000E