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的值。
woaqqdfq
级别: 略有小成
精华主题: 0
发帖数量: 54 个
工控威望: 208 点
下载积分: 490 分
在线时间: 18(小时)
注册时间: 2009-09-08
最后登录: 2016-04-15
查看woaqqdfq的 主题 / 回贴
1楼  发表于: 2011-05-27 21:07
1.不能直接监视SMD38的值;
2.想要读取HSC0的当前值可以在程序里直接双字寻址HC0,也可以用MOV_DW指令传送到一个双字寄存器地址;
3.可能是在中端程序里设置的HSC0参数不正确,或者设置玩参数并将当前值清零后没有再次调用HSC指令启用高速计数器,请楼主查查看!