回复:谁能帮我解释一下这段关于200模拟量转换的程序?

醉书生

  • 帖子

    718
  • 精华

    25
  • 被关注

    18

论坛等级:侠士

注册时间:2004-06-13

普通 普通 如何晋级?

发布于 2006-01-18 12:07:37

0楼

就是一个采集模拟量后平均值滤波的程序,其中有两处用了些编程技巧

// 读入模拟输入口数据
LD SM0.0
MOVW AIW0, VW312

[COLOR=red]技巧一:进行符号扩展
使得可以通过双字型访问采入的模拟量参与后面的累加计算,这几句相当于
//itd vw312, ac0
//movd ac0, vd310[/COLOR]
LDW>= VW312, +0
MOVW +0, VW310
NOT
MOVW 16#FFFF, VW310

// 采样值加到累加器,采样计数加1
LD SM0.0
+D VD310, VD314
INCW VW300

//达到设定的采样数时,取出累加值
LDW>= VW300, VW302
MOVD VD314, VD318

[COLOR=red]// 这两句求平均值,相当于
// itd vw300,ac0
// /d ac0,vd318
// 技巧二:因为除法指令比较耗时,这两句可以节约很多时间
// 但用这个方法有个前提,采样次数必须是 2 的幂[/COLOR]
ENCO VW300, VB900
SRD VD318, VB900
// 累加器、采样计数清零
MOVD +0, VD314
MOVW +0, VW300
生命存在的方式只有两种:腐烂或燃烧
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33276条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。