最近在捣鼓SH79F165的adc,感觉配置也完全对了,但得到的数据只有高8位是稳定的,求高手指导啊!!我把自己写的配置部分,贴到下面来。电路跟datasheet的一样。 static void __Init_Adc(void) { REGCON = BIT0; /*REGEN=1:开启电压稳压器*/ PGAM &= ~BIT7; /*禁止PGA功能,增益为1*/ ADCON &= ~BIT6; /*ADCIF=0:完成转化标志清零*/ ADCON &= ~BIT4; /*REFC=0:选择内部基准电压*/ EADC = 1; /*开启AD中断*/ ADT = 0XB0; /*Ad转化频率为25Hz*/ ADRAND = BIT7; /*RANDEN=1:允许随机时钟功能*/ ADCH = BIT7 + BIT6 + BIT5 + BIT3 + BIT0; //VREF=0.8V ADCON |= BIT7; /*ADON=1:ad开启*/ } 我用了测试了两种情况,出现的问题都是一样的; SCH[2:0]=100,即测VDD电压;测得VREF=1.075V;VDDR=2.710V;VDD=3.3左右V; SCH[2:0]=000,即通过AIN0,测的AIN0+,AIN0-之差为0.591,VIN+为1.499,VIN-为0.912;VREF=1.075; GND和AGND在电源处是直接连在一起的,但在MCU这里测的两者之差有7.6mV。 就是不知道哪里出了问题,导致数据只有高8位才是稳定的。 |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |