C语言显示电量

起初想法是电池采样,再通过采样值做出电池百分比电量,一切都OK,可是现实情况是电池采样值跳变比较厉害,上下浮动比较大。
电池能支持机器正常工作的电压值采样为420~600,那么就已430为0%,580为100%,写下这么一句
tkb_batt = (batt >> 6) & 0x3ff;
sprintf(str1,"%3d",(tkb_batt-430)*100/150);
tkb_batt为电压采样值
这本来是没问题的,可tkb_batt上下浮动的值至少5,导致显示出来的str1值上下跳动。
求解决方案

可采样多次值平均来处理。
方法:
建立一数组,a[0]存当前采样值,a[1]存两次之和,a[2]存当前三之各,。。。,a[n]为前n+1次之和。
采样一次,依次数组【i】送下一位置,并加当前值即可。
求平均。
温馨提示:答案为网友推荐,仅供参考
相似回答