这段程序要怎么理解?走过路过的都指点一下.
以下这段程序实现的功能是 让AD采样更稳定一些,先是采50次.再求平均值,然后把两次的值做个比较,最后如果波动小于10的就不管.大于10的就输出显示.可是我怎么看都是Register5和Register3都是相同的数,哪句里显示是跟上一次的值做比较了?
for(i=0;i<50;i++)//AD采50次求平均值
{
Register1=read_adc ( adchannel );
Register2=Register2+Register1;//Register2=累加50次AD
DelayUs(10);
NOP();
}
Register3=Register2/50;//求平均
Register5=Register3;//???????????????这里应该是一样的值了吧?有朋友说这是跟上一次采样的值比较,可我看上去明明是同一次的,刚赋完值就拿来比,这不是一样的数吗?
/*-----------------------------------------------*/
if(Register5>Register3){//为什么以下还要做比较?
if(Register5-Register3>10){
Register3=Register5;
}
}else{
if(Register5<Register3){
if(Register3-Register5>10){
Register3=Register5;
}
}
}
/*-----------------------------------------------*/ 程序有误吧。
last=now;
now=x;
页:
[1]