AVR ADC

void Adc_Init(void)
{
// PORTA =0x00;
// DDRA =0x00;
 ADMUX = (1<<REFS1)|(1<<REFS0);//选择第一通道ADC0,内部REF(2.56V)
 ADCSRA = (1<<ADEN)|(1<<ADPS1);//16M64分频,125k速率,启动AD转换器
 _delay_ms(10);//延迟100ms等待系统稳定后读取数据
}
uint16_t read_adc(uint8_t adc_chanel)
{
 unsigned int adc;
 ADMUX |= (0XC0|adc_chanel); //选择转换通道
 ADCSRA |= (1<<ADSC);  //开始转换
 while(!(ADCSRA & (1 << ADIF))); //等待结束
 ADCSRA |= (1<<ADIF); //清除标志
 adc=ADCL+ADCH*256;
 return(adc);  //ADC=ADCH:ADCL
}
期待 发表于09-23 16:01 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

期待
期待(总统)
金币:32864个|学分:87182个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号