发表于:2006/4/21 14:29:00
#0楼
我的子程序是通过多次采样取平均值的方法~~可是采样进来的值跳动很大~所以想改进下踢出最大和最小值再取平均值~~哪位高手帮帮忙~~怎么修改我的程序啊~~LD SM0.0
MOVW AIW0, VW12 //模拟量输入到VW12
LDW>= VW12, +0 //检查输入信号
MOVW +0, VW10
NOT
MOVW 16#FFFF, VW10 //VD10=模拟量输入值
LD SM0.0
+D VD10, VD14 //当前采样值加到采样和中
INCW VW0 //采样计数加1
LDW>= VW0, VW2 //若达到采样次数
MOVD VD14, VD18 //把VD14中的采样和复制到VD18中
ENCO VW2, AC1 //计数器移位
SRD VD18, AC1 //移位实现除法 算出平均值
MOVD +0, VD14 //采样和清零
MOVW +0, VW0 //计数器清零
//此时模拟量输入平均值=VW20
LD SM0.0
CRET
MOVW AIW0, VW12 //模拟量输入到VW12
LDW>= VW12, +0 //检查输入信号
MOVW +0, VW10
NOT
MOVW 16#FFFF, VW10 //VD10=模拟量输入值
LD SM0.0
+D VD10, VD14 //当前采样值加到采样和中
INCW VW0 //采样计数加1
LDW>= VW0, VW2 //若达到采样次数
MOVD VD14, VD18 //把VD14中的采样和复制到VD18中
ENCO VW2, AC1 //计数器移位
SRD VD18, AC1 //移位实现除法 算出平均值
MOVD +0, VD14 //采样和清零
MOVW +0, VW0 //计数器清零
//此时模拟量输入平均值=VW20
LD SM0.0
CRET