ADC code in with atmega32
uint read_adc(uchar adc_input)
{
ADMUX=adc_inpu开发者_开发技巧t | (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;
}
Q: Whats the meaning of "ADMUX=adc_input | (0x00 & 0xff)" ? which input channel we have selected here ?
0x00 & 0xFF
is nonsensical, as it will always evaluate to 0. You can rewrite that line as ADCMUX = adc_input;
Your channel selected will be the value stored in adc_input
精彩评论