采用序列多通道 模拟量采集方式,下面的程序哪里有问题吗?
下面程序 的参考电压源为:2.92V,是通过 一个160k和33k的电阻分压得到的,模拟量A0输入电压为1.42V,计算得 1.42/2.92= 0.48630.4863*4095 = 1991但是 测得的 转化后的数字量值为:2115 ,差距也太大了,是不是下面程序哪里有问题 ?
#include "chip.h"
#include "adc12.h"
#include "math.h"
uint ad_data0;
uint ad_data1;
//===================
void init_ad(void)
{
ADC12CTL0 &=~ENC;
ADC12CTL0 = SHT0_2+MSC+ADC12ON;
ADC12CTL1 =CSTARTADD_0 + SHP +ADC12SSEL_0 + CONSEQ_1 +ADC12DIV_3;
ADC12MCTL0 = EOS+SREF_2 +0;
ADC12MCTL1 = EOS+SREF_2 +1;
}
void close_ad(void)
{
ADC12CTL0 &= ~ENC;
ADC12CTL0 &= ~ADC12ON;
}
void data_convert(void)
{
ADC12CTL0 |=ENC +ADC12SC;
P6SEL |= 0x01; // P6.0 ADC option select
while( 1 == (ADC12IFG&ADC12BUSY))
{
ad_data0 = ADC12MEM0; //此处得到 ADC12MEM0为2115
ad_data1 = ADC12MEM1;
}
close_ad();
} 参考电压最好加一级跟随送给430。 回复【1楼】wanpujame
-----------------------------------------------------------------------
加一级跟随什么意思?
如果使用LM334+LM385Z-3.5是不是就不会有这个问题了,使用电阻分压出来的 参考电压源还是有问题?
页:
[1]