打破教科書上老舊按鍵檢測(cè) 自己獨(dú)創(chuàng)改進(jìn)方法!

2014-02-12 14:20 來(lái)源:電源網(wǎng) 作者:娣霧兒

傳統(tǒng)教科書中講過(guò),無(wú)一例外都是采用delay的方法檢測(cè)按鍵,但是這種方法有很多缺陷,今天就這一問題說(shuō)說(shuō),小編作為初學(xué)者,各位大俠不要見笑啊。

傳統(tǒng)的處理方法:在第一次檢測(cè)到有鍵按下時(shí),執(zhí)行一段延時(shí) 10ms 的子程序以后再確認(rèn)該按鍵電平是否能保持閉合狀態(tài)的電平,如果保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下,從而消除抖動(dòng)的影響。

個(gè)人感覺有兩點(diǎn)弊端:

1. 傳統(tǒng)的處理方法執(zhí)行10ms 的延時(shí)子程序,會(huì)降低程序的實(shí)時(shí)性。

2. 傳統(tǒng)的處理方法一次按鍵動(dòng)作的確認(rèn),只檢測(cè)兩次,在高抗干擾環(huán)境下的會(huì)有按鍵的誤動(dòng)作。

提出一些建議,大家看看是否可行呢:

1. 建議彈跳時(shí)間為 100ms 才可有效通過(guò) EFT 雜訊認(rèn)證。

2. 建議主程序中連續(xù)檢查 100ms 的穩(wěn)定低電平才可認(rèn)定按鍵按下成立。

3. 相同道理連續(xù)檢查 100ms 高電平才可認(rèn)定按鍵彈起。

4. 為了保證 MCU 的執(zhí)行效率,按鍵的檢測(cè)盡量不要使用 Delay 的方式,可以考慮采用輪詢檢測(cè)和計(jì)時(shí)器配合的方式進(jìn)行。

方法如下:

在發(fā)現(xiàn)低電平后,我們每一個(gè)循環(huán)(時(shí)基)去讀取一次電平,并與上次進(jìn)行比較,若是相同則計(jì)數(shù)器加 1,直至達(dá)到足夠的次數(shù)就進(jìn)行處理,否則計(jì)數(shù)器清零,重新開始。

教科書1

1 2 > 
檢測(cè) 按鍵

相關(guān)閱讀

暫無(wú)數(shù)據(jù)

一周熱門