恭喜,你发布的帖子
发布于 2018-01-19 14:57:55
1楼
求最大最小值很简单啊,但你这个可能还要考虑是按实时值还是平均值(类似滤波后)。给你一个模拟量滤波程序做参考(取10个值,去掉最大和最小值求平均,要放到定时中断里执行)
#MAX := #AR[0];//初始化
#MIN := #AR[0];
#TOTAL := 0.0;
#TOTAL_FILTERD := 0.0;
FOR #INDEX := 0 TO 8 BY 1 DO//FIFO堆栈
#AR[#INDEX] := #AR[#INDEX + 1];
END_FOR;
#AR[9] := #IND;//加入新检测值
FOR #INDEX := 0 TO 9 BY 1 DO
//查找最大值
IF #MAX < #AR[#INDEX] THEN
#MAX := #AR[#INDEX] ;
END_IF;
//查找最小值
IF #MIN > #AR[#INDEX] THEN
#MIN := #AR[#INDEX];
END_IF;
//计算累加和
#TOTAL := #TOTAL + #AR[#INDEX];
END_FOR;
//计算滤波后累加和
#TOTAL_FILTERD := #TOTAL - #MIN - #MAX;
#D_FILTERD := #TOTAL_FILTERD / 8.0;
请填写推广理由:
分享
只看
楼主