HT46R068B/HT46R069B
Enhanced A/D Type 8-bit OTP MCU
Interrupt Operation
A Timer/Event Counter overflow, an active edge on the external interrupt pin, a serial data byte
transmitted or received completion, or a Time Base event will all generate an interrupt request by
setting their corresponding request flag, if their appropriate interrupt enable bit is set. When this
happens, the Program Counter, which stores the address of the next instruction to be executed, will be
transferred onto the stack. The Program Counter will then be loaded with a new address which will be
the value of the corresponding interrupt vector. The microcontroller will then fetch its next instruction
from this interrupt vector. The instruction at this vector will usually be a JMP statement which will
jump to another section of program which is known as the interrupt service routine. Here is located
the code to control the appropriate interrupt. The interrupt service routine must be terminated with a
RETI instruction, which retrieves the original Program Counter address from the stack and allows the
microcontroller to continue with normal execution at the point where the interrupt occurred.
The various interrupt enable bits, together with their associated request flags, are shown in the
following diagram with their order of priority.
A
t
u
m
o
t
a
c
i
l
a
y
l
D
s
i
b
a
e
l
d
w
h
e
i
n
t
n
r
e
u
r
p
t
A
t
u
m
o
t
a
c
i
l
a
y
l
C
e
l
a
e
r
d
b
y
S
I
R
e
e
v
n
s
i
s
t
r
e
i
v
e
c
d
E
n
a
e
b
d
m
l
a
n
l
u
y
o
r
a
l
-
x
e
c
e
o
f
p
r
T
B
t
,
F
I
S
M
F
a
n
S
I
d
F
a
u
o
t
m
a
i
t
a
c
l
l
y
w
i
h
t
R
T
E
n
I
i
t
s
u
r
t
c
o
i
n
M
a
n
l
u
y
S
a
e
l
t
o
r
C
e
l
a
e
r
d
b
y
S
f
o
w
t
r
a
e
P
i
r
r
o
t
i
y
H
g
i
h
E
t
x
r
e
a
n
n
l
I
e
t
r
r
p
u
t
I
T
T
T
N
E
E
M
I
R
q
e
u
t
e
F
a
s
l
g
I
T
N
F
T
m
i
r
e
E
/
e
v
n
C
o
t
u
e
n
r
0
t
E
E
E
0
1
2
E
M
I
I
t
n
r
e
u
r
t
p
e
R
q
u
t
F
e
a
l
s
g
T
0
F
T
m
i
r
e
E
/
e
v
n
C
o
t
u
e
n
r
1
t
E
M
I
I
t
n
r
e
u
r
t
p
e
R
q
u
t
F
e
a
l
s
g
T
1
F
I
t
n
r
e
u
r
p
t
P
l
o
l
g
i
n
T
m
i
r
e
E
/
e
v
n
C
o
t
u
e
n
r
2
t
E
M
I
T
I
t
n
r
e
u
r
t
p
e
R
q
u
t
F
e
a
l
s
g
T
2
F
A
E
D
A
D
/
C
o
n
e
s
v
r
o
i
n
E
M
I
I
t
n
r
e
u
r
p
R
e
t
q
u
t
F
e
a
l
s
g
A
D
F
E
M
F
I
M
l
u
i
t
f
-
n
u
t
c
o
i
n
E
M
I
L
o
w
I
t
n
r
e
u
r
p
R
e
t
q
u
t
F
e
a
l
s
g
M
F
F
I
t
n
r
e
u
r
t
p
c
h
S
e
e
m
E
B
T
I
T
m
i
e
B
a
e
s
I
t
n
r
e
u
r
p
t
R
q
e
u
t
e
F
a
s
l
g
T
F
B
E
I
S
M
S
M
I
I
t
n
r
e
u
r
p
t
R
q
e
u
t
e
F
a
s
l
g
S
M
I
F
E
I
S
I
S
I
P
A
_
B
s
a
e
n
I
e
t
r
u
r
p
t
R
q
e
u
t
e
F
a
s
l
g
S
F
I
Once an interrupt subroutine is serviced, all the other interrupts will be blocked, as the EMI bit will
be cleared automatically. This will prevent any further interrupt nesting from occurring. However,
if other interrupt requests occur during this interval, although the interrupt will not be immediately
serviced, the request flag will still be recorded. If an interrupt requires immediate servicing
while the program is already in another interrupt service routine, the EMI bit should be set after
entering the routine, to allow interrupt nesting. If the stack is full, the interrupt request will not be
acknowledged, even if the related interrupt is enabled, until the Stack Pointer is decremented. If
immediate service is desired, the stack must be prevented from becoming full.
Rev. 1.00
74
�anꢀaꢁꢂ ꢃꢄꢅ ꢃ011