可以加大adc滑动滤波的间隔时间,比如定时每20ms采集一次滤波输入,且用滑动窗口均值滤波:
#define win_size2 15
float G_cur_V_temp2[win_size2];
float G_cur_V_temp2_v;
===========================================================
{ //电压
static u8 index_for_V_temp=0;
if(G_cur_V_temp2_show_ccc>12){
G_cur_V_temp2_show_ccc=0;
if(index_for_V_temp<=(win_size2-1)){
G_cur_V_temp2[index_for_V_temp]=G_cur_V;
index_for_V_temp++;
G_cur_V_temp2_v=G_cur_V;
}else{
for(u8 ii=0;ii<win_size2-1;ii++){
G_cur_V_temp2[ii]=G_cur_V_temp2[ii+1];
}
G_cur_V_temp2[win_size2-1]=G_cur_V;
}
G_cur_V_temp2_v=0;
for(u8 ii=0;ii<index_for_V_temp;ii++){
G_cur_V_temp2_v=G_cur_V_temp2_v+G_cur_V_temp2[ii];
}
G_cur_V_temp2_v=G_cur_V_temp2_v/index_for_V_temp;
}