使用51内核的SOC单片机V9401,使用库函数读取电流有效值,送显示,有1%的跳差,想多次采样求平均,提高稳定度,现做想1秒读取一次,读3次然后做个平均,但是程序有点问题,显示不正常了,原来读取直接送显示,正常的while(1)
{
CLRWDT();
ReadMeterPara(0x10d9); //秒平均电流有效值
temp1=u32PMdatal;
if(time_1s)
{
time_1s=0;
ReadMeterPara(0x10d9);
value_buf[0] = u32PMdatal;
if(time_2s)
{
time_2s=0;
ReadMeterPara(0x10d9);
value_buf[1] = u32PMdatal;
if(time_3s)
{
time_3s=0;
ReadMeterPara(0x10d9);
value_buf[2] = u32PMdatal;
temp1=(value_buf[0]+value_buf[1]+value_buf[2])/3;
}
}
}
dislay_jisuan();
if(Time_FLAG)
{
Time_FLAG=0;
display();
}
}
}
void Interrupt_Timer0 (void) interrupt 1 using 2
{
TF0=0;
Time_FLAG=1;
TL0 =0x33; //1ms
TH0 =0xF3;
coun++;
if(coun==150)
{
coun=0;
time_1s=1;
if(coun==150)
{
coun=0;
time_2s=1;
if(coun==150)
{
coun=0;
time_3s=1;
}
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
想再咨询下,要是建立一个数组,有5个元素, 第一的平均值为(a1);第二次平均(a1+a2)/2;。。第3次平均(a1+a2+a3)/3。。第4次平均(a1+a2+a3+a4)/4。。第5次平均为(a1+a2+a3+a4+a5)/5;这样应该如何操作好的呢 ,然后先进,后出,这样显示值应该更稳定,这样C语言应该如何表述好点呢
想再咨询下,要是建立一个数组,有5个元素, 第一的平均值为(a1);第二次平均(a1+a2)/2;。。第3次平均(a1+a2+a3)/3。。第4次平均(a1+a2+a3+a4)/4。。第5次平均为(a1+a2+a3+a4+a5)/5;这样应该如何操作好的呢 ,然后先进,后出,这样显示值应该更稳定,这样C语言应该如何表述好点呢
想再咨询下,要是建立一个数组,有5个元素, 第一的平均值为(a1);第二次平均(a1+a2)/2;。。第3次平均(a1+a2+a3)/3。。第4次平均(a1+a2+a3+a4)/4。。第5次平均为(a1+a2+a3+a4+a5)/5;这样应该如何操作好的呢 ,然后先进,后出,这样显示值应该更稳定,这样C语言应该如何表述好点呢
想再咨询下,要是建立一个数组,有5个元素, 第一的平均值为(a1);第二次平均(a1+a2)/2;。。第3次平均(a1+a2+a3)/3。。第4次平均(a1+a2+a3+a4)/4。。第5次平均为(a1+a2+a3+a4+a5)/5;这样应该如何操作好的呢 ,然后先进,后出,这样显示值应该更稳定,这样C语言应该如何表述好点呢
一周热门 更多>