youluo235 发表于 2014-3-6 17:29
2.2K只是为了匹配电阻的。换个500欧 1K,2K什么的都无所谓,程序部分还有几个值不知道你的代表什么意思。 ...
//得到x通道ad结果
uint AD_Z(unsigned char abbq)
{
unsigned int AD_DATA=0;
uint i;
for(i=0;i<16;i++)
{
ADCSC1 = abbq; //PTA1通道
while(!ADCSC1_COCO);
AD_DATA += ADCR;
}
AD_DATA/=16;
return AD_DATA;
}
//结果处理
void ReadAll_AD(void)
{
uchar i;
AD_WD1=0;
for(i=0;i<100;i++)
{
AD_WD1 +=(1024-AD_Z(10));//用1024-10通道的结果 再加起来100次
}
////////////////////////////////////////////////////////////////////////////
for(i=0;i<100;i++) //此处是我插进来的,就是采集端调整电位器数值为30c 50c时候的数值,从而得到30.50度时候的结果,来计算斜率,用来标定,计算0度时候的值,
{
WD50_1 +=(1024-AD_Z(10));
}
WDXL_1=(WD50_1-WD30_1)/ 2;
WD0_1=WD30_1- WDXL_1*3;
////////////////////////////////////////////////////////////////////////////////最后要得到的标定后的结果就是如下:
AD_WD1=(AD_WD1-WD0_1)*100/WDXL_1;
}
其中有几点不明白的。
1.为什么用1024减去,是不与电路有关系?
2.斜率=(50-30)/2 为啥不是20呢?
麻烦大侠帮我从头说说,你前面说的我都明白了。
|