Page 214 - Programming Microcontrollers in C
P. 214
Analog-to-Digital Converter Operation 199
011D BE 58 LDX $58 adc_data[j]>>= 1;
011F E6 50 LDA $50,X
0121 44 LSRA
153
0122 BE 58 LDX $58
0124 E7 50 STA $50,X
0126 B6 58 LDA $58 adc_data[j]+=
read_adc(j)>>1;
0128 CD 01 43 JSR $0143
012B 44 LSRA
012C BE 58 LDX $58
012E EB 50 ADD $50,X
0130 E7 50 STA $50,X
#asm
0132 BE 58 ldx j
0134 B6 58 lda j
0136 CD 01 43 jsr read_adc
0139 EB 50 add adc_data,x
013B 46 rora
013C E7 50 sta adc_data,x
#endasm
}
013E 3C 58 INC $58
0140 20 C4 BRA $0106
0142 81 RTS }
unsigned int read_adc(int k)
0059 {
0143 B7 59 STA $59
0145 B6 09 LDA $09 AD_CTST&=~0X7;
0147 A4 F8 AND #$F8
0149 B7 09 STA $09
014B B6 09 LDA $09 AD_CTST |=k;
014D BA 59 ORA $59
014F B7 09 STA $09