[AVR单片机] AVR Mega16的AD转换问题

[复制链接]
 楼主| jinling14 发表于 2010-4-13 16:27 | 显示全部楼层 |阅读模式
各位大侠,小弟最近在用AVR Mega16练习AD转换模块,用可变电位器做分压电路,中间输出到PA0,但是每次转换后都是FF(我设置的左对齐,只取高8位)?参考电压为AREF(直接接5V),AVCC也直接接5V。不知道是何原因撒
 楼主| jinling14 发表于 2010-4-14 09:27 | 显示全部楼层
怎么没人回答呢?自己顶一个了
yidou 发表于 2010-4-14 22:13 | 显示全部楼层
有图吗?发上来看看
 楼主| jinling14 发表于 2010-4-15 19:23 | 显示全部楼层
电路很简单,所以没画电路图,现在改动如下:
采用内部2.56V作为参考电压,AVCC直接接5V,AREF通过0.1uf电容接地,采样通道采用ADC1,将ADC1直接接地,采样结果还是0xFF(采用左对齐,只取高8位),郁闷呀!
  注:因为没有外接电源,系统5V工作电压是通过USB口提供的,我想功耗应该足够了,因为只用来做AD转换和USART传输。
贾君鹏子 发表于 2010-4-15 20:38 | 显示全部楼层
友情帮顶
epsmc 发表于 2010-4-17 16:33 | 显示全部楼层
//==============================================================
//==============                void adc_init(void)          ================
//==============================================================
//ADC initialize
// Conversion time: 3uS
void adc_init(void)
{
        ADCSRA = 0x00; //disable adc
        ADMUX = 0x40; //select Vref: AVCC;  adc input 0
        ADCSRB = 0x00;
        ADCSRA = 0x8C;               
        //SET(ADCSRA,ADSC);
}
//===========================================================
//============                 adc_isr(void)                    ===============
//===========================================================
#pragma vector=ADC_vect
__interrupt void adc_isr(void)
{
        ADC_result=ADC;
        struc_flag.ADC_flag=1;
}
按LZ的第一个接法,没有问题
chenpan161 发表于 2010-4-18 15:57 | 显示全部楼层
要帮忙总得搞个图,源代码呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

111

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

16

主题

111

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部