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