程序初始化如下:
MOVW DP,#ADCTRL1> > 6
MOV @ADCTRL3,#11000010b ; ADC power up, ADCCLK=SYSCLK/2
MOVW DP,#temp ; delay time 5ms
MOV AR0,#7
delay_5ms:
MOV @temp0,#0xFFFF
RPT @temp0
||NOP
BANZ delay_5ms,AR0--
MOVW DP,#ADCTRL1> > 6
MOV @ADCTRL3,#11100010b ; RESET ADC
MOV AR0,#7
delay_20us:
RPT #255
||NOP
BANZ delay_20us,AR0--
MOV @ADCTRL1,#0000001101010000b
MOV @CHSELSEQ1,#0X3210
MOV @CHSELSEQ2,#0X7654
MOV @CHSELSEQ3,#0XBA98
MOV @CHSELSEQ4,#0XFEDC
MOV @MAXCONV,#15
MOV @ADCTRL2,#1000000000000000b ; EVB start ADC, reset point to conv00
MOVW DP,#GPTCONB> > 6
MOV @GPTCONB,#0000010000000000b ; BIT10~9 T4启动ADC BIT8~7 T3启动ADC
; 00 不启动, 01 上益启动,10周期启动,11比较启动
; BIT6 enable compare bit
MOV @T4CMPR,#0X0000
MOV @T4PR,#15625 ; 625us周期中断
MOV @T4CON,#0001001001000000b ; BIT12~11 00stop/hold, 01 continue up/down
; 10 continue up, 11 direct up/down
; BIT10~8 pre clock SYSCLK/4, BIT6 timer enable