打印

关于增量型编码器正反转的识别算法

[复制链接]
5470|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hour01|  楼主 | 2011-6-30 08:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我现在的做法是设RB0为脉冲的下降沿触发中断,根据A与B的脉冲有90度的相位差原理,在中断中判定RB1的电平状态,如果RB1为高电平则是正转,如果RB1为低电平,则是反转,以下是我的程序,现在的问题是,在高速旋转时不会有错误识别正反转的情况,但在低速旋转的时候会错误识别正反转的情况,我估计是我的算法不对,不知道大家有更好的算法没有,多谢
if(INTF)
  {  
   INTF=0;
if((IO_A==0)&&(IO_B==1))   { delay(10); if((IO_A==0)&&(IO_B==1))   AA++; if(AA>2)  {AA=1;SD++;}}
if((IO_A==0)&&(IO_B==0))   { delay(10); if((IO_A==0)&&(IO_B==0))   BB++; if(BB>2)  {BB=1;SD--;}}

}
沙发
yewuyi| | 2011-6-30 09:04 | 只看该作者
到我以前的这个帖子中去看吧,看完了再想想能否解决问题:

https://bbs.21ic.com/viewthread.p ... 9%E7%94%B5%2Byewuyi

使用特权

评论回复
板凳
XIEYUANBIN| | 2011-6-30 11:28 | 只看该作者
A和B的脉冲数都是要计数的,否则真的会产生累积误差。

使用特权

评论回复
地板
bnyuli| | 2011-7-5 15:11 | 只看该作者
脉冲数量和计算的数量能产生的误差会有几种模式呢

使用特权

评论回复
5
yewuyi| | 2011-7-5 17:36 | 只看该作者
脉冲数量和计算的数量能产生的误差会有几种模式呢
bnyuli 发表于 2011-7-5 15:11



不倍频的问题就是双向转动时会出现累计误差,如果转动方向是单向的,则不需要考虑。

误差的原因很简单,就是A\B脉冲信号中当第一个脉冲信号出现沿变化时,另一个脉冲出现沿变化有一个时间差,如果反复围绕这个时间差振荡,则不倍频时就会出现多计脉冲的问题。

结果自然而知。

使用特权

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

本版积分规则

0

主题

1

帖子

1

粉丝