2010-05-10 50 views
0
uint read_adc(uchar adc_input) 

{ 

ADMUX=adc_input | (0x00 & 0xff); 

delay_us(10); 

ADCSRA|=0x40;  //START THE CONVERSION 

while ((ADCSRA & 0x10)==0);  // wait for the conversion to complete 

ADCSRA|=0x10; //clear the ADC flag 

return ADCW; 

} 

问:“ADMUX = adc_input |(0x00 & 0xff)”的含义是什么?我们在这里选择了哪个输入频道?ADC代码与atmega32

回答

1

0x00 & 0xFF是荒谬的,因为它会始终评估为0。您可以重写行ADCMUX = adc_input;

选择您的频道将被存储在adc_input