ADC是一定会跳动的,这是绝对的,ADC本身就是有一个上下浮动的误差
2#已经给出正确的方法了
我这个代码你参考一下,是参考,不是照抄 float Bat_Voltage,i;
Bat_Voltage=(float)1.19*1024/ADC_data_bat; //STC8G的内部参考电压为1.19V
i=Bat_Voltage-Last_Voltage; //本次电压值和上次电压进行比较,Last_Voltage为全局变量
i=fabs(i);
if(i>0.05) //电压变化值超过0.05V才进行处理
{
Last_Voltage=Bat_Voltage;
处理;
}
|