HT46R46/C46/R47/C47/R48A/C48A/R49
Rev. 1.41
32
December 30, 2008
Example: using an interrupt method to detect the end of conversion for the HT46R46
clr
EADI
; disable ADC interrupt
mov
a,00000001B
mov
ACSR,a
; setup the ACSR register to select fSYS/8 as
; the A/D clock
mov
a,00100000B
; setup ADCR register to configure Port PB0~PB3
; as A/D inputs
mov
ADCR,a
; and select AN0 to be connected to the A/D
; converter
:
; As the Port B channel bits have changed the
; following START
; signal (0-1-0) must be issued within 10
; instruction cycles
:
Start_conversion:
clr
START
set
START
; reset A/D
clr
START
; start A/D
clr
ADF
; clear ADC interrupt request flag
set
EADI
; enable ADC interrupt
set
EMI
; enable global interrupt
:
:
:
; ADC interrupt service routine
ADC_ISR:
mov
acc_stack,a
; save ACC to user defined memory
mov
a,STATUS
mov
status_stack,a
; save STATUS to user defined memory
:
:
mov
a,ADR
; read conversion result value from the ADR
; register
mov
adr_buffer,a
; save result to user defined register
:
:
EXIT_INT_ISR:
mov
a,status_stack
mov
STATUS,a
; restore STATUS from user defined memory
mov
a,acc_stack
; restore ACC from user defined memory
reti