求大神解释一下ad_buf=(float)((ad_dat1-1)/3.0)这句程序;为何取了五个数据平均值了之后,又减去1在除以3,这是为何呢?
while(1)
{
if(i<5) // 滤
{
i++;
AD_DAT+=A_D(); // 波
}
else // 算
{
i=0; // 法
ad_dat1=AD_DAT/5;
if(ad_dat1>1)
{
ad_buf=(float)((ad_dat1-1)/3.0);
Water_dat=(uchar)(ad_buf);
}
else
Water_dat=0;
AD_DAT=0;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
A_D()这读直接转换的值吗?
这没法看。
具体这个问题要看你的工艺了
A-D()读取的就是ADC0832转换过来的值
if(ad_dat1>1)
{
ad_buf=(float)((ad_dat1-1)/3.0);
Water_dat=(uchar)(ad_buf);
}这句话是啥意思呢
那我就乱猜猜啊!
ad_buf=(float)((ad_dat1-1)/3.0);
减1真不好说,看不出道理。
除以3吗,如果没说错的话,就是信号被放大。这里不仅仅是个倍数的关系啊。
比如正常采样是0-5V,对应0-255。这里除以3大概是255/3值约为84,也就是说,你测量范围为0-84。在具体就要看设计要求了。
一周热门 更多>