一、基于單片機的增量式旋轉編碼器解碼方案推薦:
1、中斷解碼:將Encoder輸出接到單片機中斷輸入引腳上,像Atmega48這種全IO中斷,且具有電平變化中斷功能的單片機尤佳。
2、主程序輪詢解碼:對于無中斷或外部中斷已被占用的情況下,必須使用主程序輪詢解碼,應該盡量提高單片機主頻,縮短主程序運行時間。
二、增量式旋轉編碼器解碼程序設計要點:
1、去抖動設計,強烈推薦使用電容進行硬件去抖動。應用中斷解碼,且具有剩余定時器資源的的情況下,可以考慮軟件去抖動;主程序十分簡單的情況下,采用輪詢解碼也可以考慮軟件去抖動(可以考慮延時去抖)。需要注意的是,具有按鍵去抖優化的單片機(如AU6840),應該考慮禁用相應IO的按鍵去抖優化,因為按鍵去抖一般在10mS以上,用在Encoder上會濾掉有用信息。
2、輪詢解碼設計:問題的焦點在于如何提高輪詢速度。可以考慮將主程序的任務劃分為不同的時間優先級,為不同的任務分配不同的時間片,使得每次主循環執行的任務盡量少。