lzhpsky
工控小菜鸟
级别: 论坛先锋
精华主题: 0
发帖数量: 1045 个
工控威望: 1151 点
下载积分: 2796 分
在线时间: 767(小时)
注册时间: 2009-08-02
最后登录: 2024-12-21
查看lzhpsky的 主题 / 回贴
楼主  发表于: 2011-05-27 13:59



1.我用HSC0的10模式,来计数AB相脉冲,我用状态表监控HSC0的数值不断变化,可是SMD38当前计数值怎么没变化?

2.当前的计数值在哪个寄存器里?怎么取出来?

3.设定值是6000,计数值到6000后产生中断,这个没问题,但是编码器转动时,HSC0还会计数。怎么写程序就可以实现计数到6000后,在中断里HSC0里面的当前值马上清零,旋转编码器旋转时,还不会计数。等再启动时才开始计数,就是说到6000后怎么清掉HSC0的值。
回忆依然最美
一不小心混进社会, 浪子回头已经白费... ...
级别: 工控侠客
精华主题: 0
发帖数量: 1240 个
工控威望: 2873 点
下载积分: 21638 分
在线时间: 1322(小时)
注册时间: 2008-06-16
最后登录: 2024-11-14
查看回忆依然最美的 主题 / 回贴
1楼  发表于: 2011-05-27 19:46
1.不能直接监视SMD38的值;
2.想要读取HSC0的当前值可以在程序里直接双字寻址HC0,也可以用MOV_DW指令传送到一个双字寄存器地址;
3.可能是在中端程序里设置的HSC0参数不正确,或者设置玩参数并将当前值清零后没有再次调用HSC指令启用高速计数器,请楼主查查看!
本帖最近评分记录:
  • 下载积分:+1(guochunyi) 热心助人