[DSP编程] eCAP转速采集

[复制链接]
2956|14
 楼主| xishuidemian 发表于 2014-10-26 18:52 | 显示全部楼层 |阅读模式
最近碰到一个问题,用eCAP采集转速的时候,中断处理,可以正常采集。现在碰到一个问题就是,假如转速线突然断开了,中断就讲不去了,转速保持前一次的值不变。这并不是我想要的结果,我要的是这种故障发生的时候,转速能突变成0.想问问大家,有什么好的处理办法呢?
公司不联网,不方便传代码。谢谢。
wangch_sh 发表于 2014-10-26 18:57 | 显示全部楼层
定时。设标志位,不进捕捉中断为1,进中断清零。到一定时间不清零,认为线断,把转速清零。
zhangmangui 发表于 2014-10-26 22:15 | 显示全部楼层
看来你是在ECAP中断中处理数据的啊     你是编码器信号触发一次然后捕获一次定时器的值吗
记得应该有一个方向判断的标志    你可以利用一下这个信号  
当为正是正转   负为反转    停止时是不是0呢
 楼主| xishuidemian 发表于 2014-10-27 19:20 | 显示全部楼层
wangch_sh 发表于 2014-10-26 18:57
定时。设标志位,不进捕捉中断为1,进中断清零。到一定时间不清零,认为线断,把转速清零。 ...

这个办法可以试试。只是定时器要不停得查询,对整个系统的效率有影响了。
 楼主| xishuidemian 发表于 2014-10-27 19:31 | 显示全部楼层
zhangmangui 发表于 2014-10-26 22:15
看来你是在ECAP中断中处理数据的啊     你是编码器信号触发一次然后捕获一次定时器的值吗
记得应该有一个方 ...

我这个是脉冲信号,没有正反转.采集上升沿的时刻,然后相减,即得到周期,再经过换算得到转速。当然程序中还有多次采集取平均值的过程。
wangch_sh 发表于 2014-10-27 19:34 | 显示全部楼层
用中断。定时周期长一些。
 楼主| xishuidemian 发表于 2014-10-27 19:38 | 显示全部楼层
目前我用办法是定义一个全局变量,作为转速的影子变量。在中断外将它赋给转速变量(也是一个全局变量),赋值完后又令他等于0,下次中断得到的值去覆盖它。如果转速为0,即中断进不去了,所以下次的转速也就等于0.初步调试是可行的,就是不知道会不会有BUG。
zhangmangui 发表于 2014-10-27 22:17 | 显示全部楼层
xishuidemian 发表于 2014-10-27 19:31
我这个是脉冲信号,没有正反转.采集上升沿的时刻,然后相减,即得到周期,再经过换算得到转速。当然程序 ...

哦    看来你没有同时采集A、B两相啊  
做平均处理不太好   我建议你采用变M/T法吧
 楼主| xishuidemian 发表于 2014-10-28 19:14 | 显示全部楼层
zhangmangui 发表于 2014-10-27 22:17
哦    看来你没有同时采集A、B两相啊  
做平均处理不太好   我建议你采用变M/T法吧 ...

M和T法以前单独用过,你这里的意思应该是两者混合使用吧,那切换的地方该怎么处理呢?还有我一直都是用多次采集取中间值得办法进行滤波,不管是AD采集还是IC采集,这样不好吗?那应该怎么消除干扰呢?
zhangmangui 发表于 2014-10-28 21:42 | 显示全部楼层
xishuidemian 发表于 2014-10-28 19:14
M和T法以前单独用过,你这里的意思应该是两者混合使用吧,那切换的地方该怎么处理呢?还有我一直都是用多 ...

这样也可以   如果一直使用没问题  就沿用你的方法
关于你的这个问题    想不到什么好办法啊
寻觅不倒翁 发表于 2015-8-30 14:50 | 显示全部楼层
zhangmangui 发表于 2014-10-27 22:17
哦    看来你没有同时采集A、B两相啊  
做平均处理不太好   我建议你采用变M/T法吧 ...

你好,想麻烦你解释一下这个问题的楼主在第7楼说的方法,我尝试了楼主的方法,没成功,不知是不是哪里弄错了,谢谢你了
寻觅不倒翁 发表于 2015-8-30 17:45 | 显示全部楼层
我也碰到了这个问题,请楼主传授解决的方法,谢谢。
zhangmangui 发表于 2015-8-30 18:40 | 显示全部楼层
寻觅不倒翁 发表于 2015-8-30 17:45
我也碰到了这个问题,请楼主传授解决的方法,谢谢。

每次计算完成后     将值置为0    然后等待下次触发   
这样行不行  也就是每次的初始值让其为0
寻觅不倒翁 发表于 2015-8-31 11:40 | 显示全部楼层
zhangmangui 发表于 2015-8-30 18:40
每次计算完成后     将值置为0    然后等待下次触发   
这样行不行  也就是每次的初始值让其为0 ...

嗯,我也是这么做的,还是没起作用,
gejigeji521 发表于 2015-9-30 22:41 来自手机 | 显示全部楼层
一个月了,楼主弄好了没
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

43

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部