假設函數IS_PIN_A_HIGH()和IS_PIN_B_HIGH()是讀取A,B兩個引腳的狀態 假設有兩個外中斷INT0和INT1都已經配置為雙邊沿觸發模式,則解碼如下:
[color=rgb(51, 102, 153) !important]復制代碼 讀取全局變量s_wQDCounter的時候別忘記加入中斷保護。如果要追求效率,可以將計數器類型修改為uint16_t。 -------------------------- 以上就是中斷法,可以用引腳電平變化中斷來做。上面的代碼是4倍頻。如果要2倍頻,去掉任何一個中斷處理程序即可。 如果要單倍頻,選擇任意一個外中斷,并選擇只對某個邊沿觸發即可。 多年測試,穩定可靠~ 記住一句口訣: 在任意邊沿觸發模式下,A和B進行電平比較: 對A觸發的中斷:同加異減 對B觸發的中斷:同減異加 反之亦然 總結到最后,就是 同加異減,同減異加 |
歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |