german010 发表于 2011-6-30 17:28:21

采用序列多通道 模拟量采集方式,下面的程序哪里有问题吗?

下面程序 的参考电压源为: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();
}

wanpujame 发表于 2011-6-30 20:42:35

参考电压最好加一级跟随送给430。

german010 发表于 2011-7-1 03:48:45

回复【1楼】wanpujame
-----------------------------------------------------------------------


加一级跟随什么意思?
如果使用LM334+LM385Z-3.5是不是就不会有这个问题了,使用电阻分压出来的 参考电压源还是有问题?
页: [1]
查看完整版本: 采用序列多通道 模拟量采集方式,下面的程序哪里有问题吗?