[IMG=0,absmiddle]http://hiphotos.baidu.com/dzzxq/pic/item/9fc7ec502c1f5a498735246c.jpg[/IMG]
项目中打算用149的三个通道来测,现在实验结果如下:
一、当没有任何输入时,三个通道的显示分别为0.9388,0.9242,0.9212。最后两位跳动厉害
二、当只给第一路输入电压0.33V时,三个通道的显示分别为0.2853(最后一位数字跳动),0.6460,0.8575,最后两位跳动。
当只给第二路输入电压0.33V时,三个通道的显示分别为0.8322,0.2875(最后一位数字跳动),0.6670,其余后两位数字跳动。
当只给第三路输入电压0.33V时,三个通道的显示分别为0.6560,0.8370,0.2890(最后一位数字跳动),其余后两位数字跳动。
当三路同时输入电压0.33V时,三个通道的显示分别为0.2850,0.2861,0.2872,前两个数据只是最后一个数字跳动,最后一个数据后两位都会跳动。
附部分主要程序
AD12设置
void Init_ADC()
{ P6SEL|=BIT0; P6SEL|=BIT1; P6SEL|=BIT2; ADC12CTL0&=~ENC; ADC12CTL0=REFON+SHT0_2+MSC+ADC12ON; ADC12CTL0&=~REF2_5V;//1.5V基准源 ADC12MCTL0=INCH_0+SREF_1; ADC12MCTL1=INCH_1+SREF_1; ADC12MCTL2=INCH_2+SREF_1+EOS; ADC12CTL1=SHP+CONSEQ_1;//多通道,单次转换 ADC12CTL0|=ENC;
}
查询方式采样1024次取平均 Voltage_Temp[0]=0; Voltage_Temp[1]=0; Voltage_Temp[2]=0; for(i=0;i<1024;i++) { ADC12CTL0|=ADC12SC; while(!(ADC12IFG&BIT0)); result[0]=ADC12MEM0; Voltage_Temp[0]+=result[0]; while(!(ADC12IFG&BIT1)); result[1]=ADC12MEM1; Voltage_Temp[1]+=result[1]; while(!(ADC12IFG&BIT2)); result[2]=ADC12MEM2; Voltage_Temp[2]+=result[2];
} result[0]=Voltage_Temp[0]>>10; Voltage[0]=result[0]/(float)4095*1.5; result[1]=Voltage_Temp[1]>>10; Voltage[1]=result[1]/(float)4095*1.5; result[2]=Voltage_Temp[2]>>10; Voltage[2]=result[2]/(float)4095*1.5;
[COLOR=#F70968][SIZE=2][b]探讨问题:
1、没有输入时,能不能不显示这么大的数据
2、为什么第三路跳动最大呢[/b][/COLOR][/SIZE]
结果补充:又加了一路通道,进行实验,这样我用了四个通道,结果显示,前两路通道稳定,后两路通道数据跳动较大。不知道什么原因呢? |