void init_adc(void)
{
PORTA &= ~(1<<PA0);
DDRA &= ~(1<<PA0);
ADMUX = (1<<REFS1)|(1<<REFS0);//选择第一通道ADC0,内部REF(2.56V)
ADCSRA = (1<<ADEN)|(1<<ADPS1)|(1<<ADPS2);//16M64分频,125k速率,启动AD转换器
_delay_ms(10);//延迟100ms等待系统稳定后读取数据
}
uint16_t read_adc(uint8_t adc_chanel)
{
ADMUX |= (0XC0|adc_chanel); //选择转换通道
ADCSRA |= (1<<ADSC); //开始转换
while(!(ADCSRA & (1 << ADIF))); //等待结束
ADCSRA |= (1<<ADIF); //清除标志
return(ADC); //ADC=ADCH:ADCL
}