HT46R47E/HT46C47E
set
set
EADI
; enable ADC interrupt
; enable global interrupt
EMI
:
:
:
; ADC interrupt service routine
ADC_ISR:
mov
mov
mov
acc_stack,a
; save ACC to user defined memory
a,STATUS
status_stack,a
; save STATUS to user defined memory
:
:
mov
mov
mov
mov
clr
a,ADRH
adrh_buffer,a
a,ADRL
adrl_buffer,a
START
START
START
:
; read conversion result high byte value from the ADRH register
; save result to user defined register
; read conversion result low byte value from the ADRL register
; save result to user defined register
set
; reset A/D
; start A/D
clr
:
EXIT_INT_ISR:
mov
mov
mov
reti
a,status_stack
STATUS,a
; restore STATUS from user defined memory
; restore ACC from user defined memory
a,acc_stack
M
i
n
i
m
u
m
o
n
e
i
n
s
t
r
u
c
t
i
o
n
c
y
c
l
e
n
e
e
d
e
d
,
M
a
x
i
m
u
m
t
e
n
i
n
s
t
r
u
c
t
i
o
n
c
y
c
l
e
s
a
l
l
o
w
e
d
S
T
A
R
T
E
O
C
B
A
/
D
s
a
m
p
l
i
n
g
t
i
m
e
A
/
D
s
a
m
p
l
i
n
g
t
i
m
e
A
/
D
s
a
m
p
l
i
n
g
t
i
m
e
t
A
D
C
S
t
A
D
C
S
t
A D C S
P
C
R
2
~
0
0
0
B
1
0
0
B
1
0
1
B
0
0
0
B
1
0
0
B
P
C
R
0
1
.
P
A
t
B
p
o
r
t
s
e
t
u
p
a
s
I
/
O
s
2
.
/
D
c
o
n
v
e
r
t
e
r
i
s
p
o
w
e
r
e
d
o
f
f
o
r
e
d
u
c
e
p
o
w
e
r
c
o
n
s
u
m
p
t
i
o
n
A
C
S
2
~
d
o
n
'
t
c
a
r
e
0
0
0
B
0
0
0
B
0
0
1
B
0
1
0
B
A
C
S
0
P
o
w
e
r
-
o
n
S
t
a
r
t
o
f
A
/
D
S
t
a
r
t
o
f
A
/
D
S
t
a
r
t
o
f
A
/
D
R
e
s
e
t
c
o
n
v
e
r
s
i
o
n
c
o
n
v
e
r
s
i
o
n
c
o
n
v
e
r
s
i
o
n
R
e
s
e
t
A
/
D
R
e
s
e
t
A
/
D
R
e
s
e
t
A
/
D
c
o
n
v
e
r
t
e
r
c
o
n
v
e
r
t
e
r
c
o
n
v
e
r
t
e
r
E
n
d
o
f
A
/
D
E
n
d
o
f
A
/
D
E
n
d
o
f
A
/
D
c
o
n
v
e
r
s
i
o
n
c
o
n
v
e
r
s
i
o
n
c
o
n
v
e
r
s
i
o
n
1
:
D
e
f
i
n
e
P
B
c
o
n
f
i
g
u
r
a
t
i
o
n
2
:
S
e
l
e
c
t
a
n
a
l
o
g
c
h
a
n
n
e
l
t
A
D
C
t
A
D
C
t
A D C
A
/
D
c
o
n
v
e
r
s
i
o
n
t
i
m
e
A
/
D
c
o
n
v
e
r
s
i
o
n
t
i
m
e
A
/
D
c
o
n
v
e
r
s
i
o
n
t
i
m
e
N
o
t
e
:
A
t
t
/
D
c
l
o
c
k
m
u
s
t
b
e
f
S
Y
S
S
Y
S
S
Y
S
A
D
C
S
A
D
A
D
C
A
D
A/D Conversion Timing
Rev. 1.30
20
July 13, 2005