不過我在網上游逛了很久,也看過不少源程序了,沒有發現這種按鍵處理辦法的蹤跡,所以,我將他共享出來,和廣大同僚們共勉。我非常堅信這種按鍵處理辦法的便捷和高效,你可以移植到任何一種嵌入式處理器上面,因為C語言強大的可移植性。 同時,這里面用到了一些分層的思想,在單片機當中也是相當有用的,也是本文 ...
一 思路 基於STM ,按鍵處理,思路是這樣的: 每 ms左右一次去掃描按鍵,用一個key now記錄當前值,用key last記錄上次的值,如果key now和key last同時有效,則開始進行cnt 。 我設定兩個閾值,LONG PRESS為 ms s ,SHORT PRESS為 ms ms,去抖 。 cnt大於LONG PRESS,表示是長按,反之再判斷cnt是不是大於SHORT PRE ...
2014-06-27 12:32 0 12087 推薦指數:
不過我在網上游逛了很久,也看過不少源程序了,沒有發現這種按鍵處理辦法的蹤跡,所以,我將他共享出來,和廣大同僚們共勉。我非常堅信這種按鍵處理辦法的便捷和高效,你可以移植到任何一種嵌入式處理器上面,因為C語言強大的可移植性。 同時,這里面用到了一些分層的思想,在單片機當中也是相當有用的,也是本文 ...
:在定時器里面處理獨立按鍵的掃描程序,可以避免上述問題。*/#include "REG52.H"#define ...
IO輸入的姿勢 對於IO輸入采用與IO輸出類似的姿勢 1 使能時鍾 2 初始化IO口 2.1 定義一個初始化結構體 2.2 選擇要初始化的IO口 2.3 ...
1.按鍵消抖的原理 圖1.按鍵抖動示意圖 我們平常所用的按鍵為機械彈性開關,由於觸點的彈性作用,按鍵在閉合時不會馬上穩定的接通,而是有一段時間的抖動,在斷開時也不會立即斷開。抖動時間由按鍵的機械特性所決定,一般為5ms~10ms。所以我們在做按鍵檢測時都要加一個消抖的過程 ...
一般來說按鍵可以用一個ADC通道來做按鍵的掃描工作,根據各個按鍵上的下拉電阻不同而識別不同種的按鍵狀態,在按鍵數不多且不適合做矩陣鍵盤的時候而且按鍵數又不可忽略的占用過多的IO口這個時候可以使用ADC掃描來做按鍵的掃描。普通情況下一個按鍵可用普通IO口或者ADC端口做按鍵掃描。 如圖,按鍵 ...
在按下按鍵的時候,在閉合和斷開的瞬間有一連串的抖動。 這樣一次按下的動作可能會觸發很多次。 所以,當檢測到按鍵狀態變化時,不是立即去響應動作,而是先等待閉合或斷開穩定后再進行處理。 按鍵消抖可分為硬件消抖和軟件消抖。 消除抖動有軟件和硬件兩種方法。 通常我們用軟件消抖。 最簡單的消抖原理 ...
一般的按鍵輸入軟件接口程序非常簡單,在程序中一旦檢測到按鍵輸入口為低電平(有時可能為高),便采用軟件延時的方 法來進行消抖,然后再次檢測按鍵輸入,如果再次確認為低電平則表示有按鍵按下,轉入執行按鍵處理程序。如果延時后檢測的電平為高電平則放棄本次按鍵檢測, 重新開始一次按鍵檢測過程。在簡單的系統中 ...
KEY_Scan 函數,則是用來掃描這 4 個 IO 口是否有按鍵按下。 KEY_Scan 函數, 支持兩種掃描方式,通過 mode 參數來設置。 當 mode 為 0 的時候, KEY_Scan 函數將不支持連續按, 掃描某個按鍵,該按鍵按下之后必須要松開,才能第二次觸發,否則不 ...