
MAXQ Family User’s Guide:
MAXQ2010 Supplement
19-9
19.3 Analog-to-Digital Converter Code Examples
19.3.1 ADC Example 1: Single Conversion
move ADCN, #0300h ; Set ADC clock to sysclk/8 (78ksps at 10MHz)
move ADST, #0010h ; Points ADDATA to config register 0
move ADDATA, #06h ; Single-ended conversion on channel AN6, AVDD ref
move ADST.6, #1 ; Start conversion
waitConvert:
move C, ADST.6
jump C, waitConvert ; Conversion has completed when ADST.6 clears to 0
move ADST, #0000h ; Points ADDATA to data register 0
move Acc, ADDATA ; Get conversion result
19.3.2 ADC Example 2: Continuous Conversion
move ADCN, #0F00h ; Set ADC clock to sysclk/8 (78ksps at 10MHz),
; also set Data Available interrupt to trigger
; following every 16 samples
move ADCN.6, #1 ; Enable continuous conversion mode
move ADST, #0010h ; Points ADDATA to config register 0
move ADDATA, #06h ; ACFG[0]: Single-ended conversion on AN6, AVDD ref
move ADDATA, #07h ; ACFG[1]: Single-ended conversion on AN7, AVDD ref
move ADADDR, #0001h ; Sequence runs from ACFG[0] to ACFG[1] inclusive
move ADST.6, #1 ; Start conversion (continuous)
waitConvert:
move C, ADST.5
jump NC, waitConvert ; Wait for 16 samples to be captured (ADDAI=1)
move ADST.6, #0 ; Stop conversion
move ADST.5, #0 ; Clear data available flag
move ADST, #0000h ; Points ADDATA to data register 0
move A[0], ADDATA ; Get conversion data
move A[1], ADDATA
move A[2], ADDATA
move A[3], ADDATA
move A[4], ADDATA
move A[5], ADDATA
ADDIFF ADCH2 ADCH1 ADCH0 ADC CONVERSION TYPE
1 X 0 0 Differential conversion: (AN0–AN1)
1 X 0 1 Differential conversion: (AN2–AN3)
1 X 1 0 Differential conversion: (AN4–AN5)
1 X 1 1 Differential conversion: (AN6–AN7)
Comentarios a estos manuales