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

2019-07-21 02:48发布

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

①位置:如果是按照上面的时序图来看的话,应该是编码器主轴每走1度计数器就计数4次,并且根据转动方向加减,我想问这种情况的话是不是设置成上下边沿都触发了,如果想每走1度计数2次的话是不是就可以设置成上边沿触发或下边沿就可以了,如果是每走1度计数一次是不是只连A相或B相就可以了啊。这样就可以通过读计数器的值获取位置信息了,但是如何确定基准呢。
②方向:是不是设置一个中断,然后在A相的上升沿或下降沿检测B相的电平以确定方向了。
③速度:如果想算速度是不是应该再用一个定时器固定时间产生中断,然后在中断里用两次计数器的差值/固定时间就可以得出编码器的速度了,但这样算的是平均速度啊,是不是如果时间足够小就可以当做是瞬时速度了,而且如果在这段时间里编码器换了转动方向那速度不就不对了,那这种情况应该如何解决了,是不是应该设置一个标志量,若标志量改变,就记录此刻的计数器值,这样用标志量改变时的计数器值减去两边的然后相加就可以了。
④加速度是直接速度微分吗。
希望大虾看看我这思路有没有错误
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。