|
以下这段程序实现的功能是 让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;
}
}
}
/*-----------------------------------------------*/ |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|