打印
[DSP编程]

eCAP转速采集

[复制链接]
2183|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,进中断清零。到一定时间不清零,认为线断,把转速清零。 ...

这个办法可以试试。只是定时器要不停得查询,对整个系统的效率有影响了。

使用特权

评论回复
5
xishuidemian|  楼主 | 2014-10-27 19:31 | 只看该作者
zhangmangui 发表于 2014-10-26 22:15
看来你是在ECAP中断中处理数据的啊     你是编码器信号触发一次然后捕获一次定时器的值吗
记得应该有一个方 ...

我这个是脉冲信号,没有正反转.采集上升沿的时刻,然后相减,即得到周期,再经过换算得到转速。当然程序中还有多次采集取平均值的过程。

使用特权

评论回复
6
wangch_sh| | 2014-10-27 19:34 | 只看该作者
用中断。定时周期长一些。

使用特权

评论回复
7
xishuidemian|  楼主 | 2014-10-27 19:38 | 只看该作者
目前我用办法是定义一个全局变量,作为转速的影子变量。在中断外将它赋给转速变量(也是一个全局变量),赋值完后又令他等于0,下次中断得到的值去覆盖它。如果转速为0,即中断进不去了,所以下次的转速也就等于0.初步调试是可行的,就是不知道会不会有BUG。

使用特权

评论回复
8
zhangmangui| | 2014-10-27 22:17 | 只看该作者
xishuidemian 发表于 2014-10-27 19:31
我这个是脉冲信号,没有正反转.采集上升沿的时刻,然后相减,即得到周期,再经过换算得到转速。当然程序 ...

哦    看来你没有同时采集A、B两相啊  
做平均处理不太好   我建议你采用变M/T法吧

使用特权

评论回复
9
xishuidemian|  楼主 | 2014-10-28 19:14 | 只看该作者
zhangmangui 发表于 2014-10-27 22:17
哦    看来你没有同时采集A、B两相啊  
做平均处理不太好   我建议你采用变M/T法吧 ...

M和T法以前单独用过,你这里的意思应该是两者混合使用吧,那切换的地方该怎么处理呢?还有我一直都是用多次采集取中间值得办法进行滤波,不管是AD采集还是IC采集,这样不好吗?那应该怎么消除干扰呢?

使用特权

评论回复
10
zhangmangui| | 2014-10-28 21:42 | 只看该作者
xishuidemian 发表于 2014-10-28 19:14
M和T法以前单独用过,你这里的意思应该是两者混合使用吧,那切换的地方该怎么处理呢?还有我一直都是用多 ...

这样也可以   如果一直使用没问题  就沿用你的方法
关于你的这个问题    想不到什么好办法啊

使用特权

评论回复
11
寻觅不倒翁| | 2015-8-30 14:50 | 只看该作者
zhangmangui 发表于 2014-10-27 22:17
哦    看来你没有同时采集A、B两相啊  
做平均处理不太好   我建议你采用变M/T法吧 ...

你好,想麻烦你解释一下这个问题的楼主在第7楼说的方法,我尝试了楼主的方法,没成功,不知是不是哪里弄错了,谢谢你了

使用特权

评论回复
12
寻觅不倒翁| | 2015-8-30 17:45 | 只看该作者
我也碰到了这个问题,请楼主传授解决的方法,谢谢。

使用特权

评论回复
13
zhangmangui| | 2015-8-30 18:40 | 只看该作者
寻觅不倒翁 发表于 2015-8-30 17:45
我也碰到了这个问题,请楼主传授解决的方法,谢谢。

每次计算完成后     将值置为0    然后等待下次触发   
这样行不行  也就是每次的初始值让其为0

使用特权

评论回复
14
寻觅不倒翁| | 2015-8-31 11:40 | 只看该作者
zhangmangui 发表于 2015-8-30 18:40
每次计算完成后     将值置为0    然后等待下次触发   
这样行不行  也就是每次的初始值让其为0 ...

嗯,我也是这么做的,还是没起作用,

使用特权

评论回复
15
gejigeji521| | 2015-9-30 22:41 | 只看该作者
一个月了,楼主弄好了没

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

43

帖子

0

粉丝