恭喜,你发布的帖子
发布于 2016-12-15 14:52:41
2楼
其实就是堆栈,队列里就用到的,定义一个数组Array[0-99]
IF #SP THEN
FOR #INDEX := 0 TO 98 BY 1 DO//堆栈(其实要判断首尾满空的,就不写了)
#AR[#INDEX+1] := #AR[#INDEX];
END_FOR;
END_IF;
给你一个模拟量滤波程序参考下SCL用法吧
#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;
请填写推广理由:
分享
只看
楼主