一、基于单片机的增量式旋转编码器解码方案推荐:
1、中断解码:将Encoder输出接到单片机中断输入引脚上,像Atmega48这种全IO中断,且具有电平变化中断功能的单片机尤佳。
2、主程序轮询解码:对于无中断或外部中断已被占用的情况下,必须使用主程序轮询解码,应该尽量提高单片机主频,缩短主程序运行时间。
二、增量式旋转编码器解码程序设计要点:
1、去抖动设计,强烈推荐使用电容进行硬件去抖动。应用中断解码,且具有剩余定时器资源的的情况下,可以考虑软件去抖动;主程序十分简单的情况下,采用轮询解码也可以考虑软件去抖动(可以考虑延时去抖)。需要注意的是,具有按键去抖优化的单片机(如AU6840),应该考虑禁用相应IO的按键去抖优化,因为按键去抖一般在10mS以上,用在Encoder上会滤掉有用信息。
2、轮询解码设计:问题的焦点在于如何提高轮询速度。可以考虑将主程序的任务划分为不同的时间优先级,为不同的任务分配不同的时间片,使得每次主循环执行的任务尽量少。