关于定时器设置成编码器模式时的思路问题

2019-07-21 02:48发布

   编码器模式时序图.png
我的编码器是360线的,所以是1°一个脉冲。并且只有AB两相。

①位置:如果是按照上面的时序图来看的话,应该是编码器主轴每走1度计数器就计数4次,并且根据转动方向加减,我想问这种情况的话是不是设置成上下边沿都触发了,如果想每走1度计数2次的话是不是就可以设置成上边沿触发或下边沿就可以了,如果是每走1度计数一次是不是只连A相或B相就可以了啊。这样就可以通过读计数器的值获取位置信息了,但是如何确定基准呢。
②方向:是不是设置一个中断,然后在A相的上升沿或下降沿检测B相的电平以确定方向了。
③速度:如果想算速度是不是应该再用一个定时器固定时间产生中断,然后在中断里用两次计数器的差值/固定时间就可以得出编码器的速度了,但这样算的是平均速度啊,是不是如果时间足够小就可以当做是瞬时速度了,而且如果在这段时间里编码器换了转动方向那速度不就不对了,那这种情况应该如何解决了,是不是应该设置一个标志量,若标志量改变,就记录此刻的计数器值,这样用标志量改变时的计数器值减去两边的然后相加就可以了。
④加速度是直接速度微分吗。
希望大虾看看我这思路有没有错误
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
theking
1楼-- · 2019-07-21 19:59
Acuity 发表于 2019-4-16 23:45
1、位置,理解基本正确,一般都是用4倍频(AB相正交),用2或者1就是浪费编码器精度;用相对基准,不用绝对 ...

好的谢谢了
theking
2楼-- · 2019-07-21 22:39
 精彩回答 2  元偷偷看……

一周热门 更多>