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