一種打破教科書(shū)上的按鍵檢測方法
傳統的教科書(shū),無(wú)一例外都是采用delay的方法檢測按鍵,但是這種方法有很多缺陷,今天發(fā)一貼說(shuō)說(shuō),各位大俠不要見(jiàn)笑,初級菜鳥(niǎo)可以借鑒。
本文引用地址:http://dyxdggzs.com/article/226882.htm傳統的處理方法:在第一次檢測到有鍵按下時(shí),執行一段延時(shí) 10ms 的子程序以后再確認該按鍵電平是否能保持閉合狀態(tài)的電平,如果保持閉合狀態(tài)電平,則確認為真正有鍵按下,從而消除抖動(dòng)的影響.
缺點(diǎn):
1. 傳統的處理方法執行 10ms 的延時(shí)子程序,會(huì )降低程序的實(shí)時(shí)性。
2. 傳統的處理方法一次按鍵動(dòng)作的確認,只檢測兩次,在高抗干擾環(huán)境下的會(huì )有按鍵的誤動(dòng)作。
建議:
1. 建議彈跳時(shí)間為 100ms 才可有效通過(guò) EFT 雜訊認證。
2. 建議主程序中連續檢查 100ms 的穩定低電平才可認定按鍵按下成立。
3. 相同道理連續檢查 100ms 高電平才可認定按鍵彈起。
4. 為了保證 MCU 的執行效率,按鍵的檢測盡量不要使用 Delay 的方式,可以考慮采用輪詢(xún)檢測和計時(shí)器配合的方式進(jìn)行。
方法如下:
在發(fā)現低電平后,我們每一個(gè)循環(huán)(時(shí)基)去讀取一次電平,并與上次進(jìn)行比較,若是相同則計數器加 1,直至達到足夠的次數就進(jìn)行處理,否則計數器清零,重新開(kāi)始。
評論