编码器概述原理及应用特点是什么? 编码器的作用( 三 )


四,定时器做编码器接口的配置方式
1,计数模式


如上两张图对应着来看呐,显然用T1,T2共同计数比较精确,也就是实现了“四倍频”
2,滤波等级


3,计数重装载值
就是对“
TIM_TimeBaseStructure.TIM_Period”赋值,


这些都有写在代码的注释里面


六,编码器应用注意点
1.编码器有个转速上限,超过这个上限是不能正常工作的,这个是硬件的限制,原则上线数越多转速就越低,这点在选型时要注意,编码器的输出一般是开漏的,所以单片机的io一定要上拉输入状态 。
2.定时器初始化好以后,任何时候CNT寄存器的值就是编码器的位置信息,正转他会加反转他会减这部分是不需要软件干预的,初始化时给的TIM_Period 值应该是码盘整圈的刻度值,在减溢出会自动修正为这个数 。加超过此数值就回0.
3.如果要扩展成多圈计数需要溢出中断像楼主说的,程序上圈计数加减方向位就行了 。
4.编码器每个定时器的输入脚百思特网可以通过软件设定滤波
5.应用中如果没有绝对位置信号或者初始化完成后还没有收到绝对位置信号前的计数只能是相对计数 。收到绝对位置信号后重新修改一次CNT的值就行了 。码盘一般都有零位置信号,结合到定时器捕获输入就行 。上电以后要往返运动一下找到这个位置 。
6.即便有滤波计数值偶尔也会有出错误的情况,一圈多计一个或少计一个数都是很正常的特别是转速比较高的时候尤其明显,有个绝对位置信号做修正是很有必要的 。绝对位置信号不需要一定在零位置点,收到这个信号就将CNT修正为一个固定的数值即可 。
7.编码器开启定时器的输入中断可以达到每个步计数都作处理的效果,但是高速运转的时候你可能处理不过来 。


推荐阅读