按鍵的長按與短按(基於MSP430F5529)

2021-07-22 15:01:37 字數 516 閱讀 8629

長按與短按的區別只是加上乙個適當的延時然後再去判斷引腳狀態。

定義:

#define keydir p2dir

#define keyin p2in

#define keyifg p2ifg

#define keyie p2ie

#define keyies p2ies

#define keyren p2ren

#define s1 bit0

extern unsigned char key_key;

在中斷中處理長按與短按:

#pragma vector=port2_vector  //宣告中斷向量位址

__interrupt void gpiointhandler(void)}}

if(cv==0)//

長按狀態的標誌為0時

}keyifg &=~(s1);//中斷標誌位清零

}

基於狀態機的微控制器按鍵短按長按功能的實現

發表於 2017 12 28 08 43 46 控制 mcu 關注在自己在科研實踐和對學生教學中發現,現在微控制器學習中對於按鍵處理的方法都是 檢測按鍵 延時消抖 按鍵執行 等待釋放,整個按鍵處理的程式中大量出現 delay 1ms 5 和 while key 這樣的語句,這明顯是在給自己找麻煩,延...

同乙個按鍵短按與長按的區別觸發

include reg52.h define const voice short 20 蜂鳴器短叫的持續時間 define const voice long 140 蜂鳴器長叫的持續時間 define const key time1 short1 20 短按的按鍵去抖動延時時間 define con...

基於MSP430F5529的按鍵消抖問題

注 板子 msp430f5529 開發環境 ccsv5 知道了抖動產生的原因,我們就可以思考解決的辦法了。很顯然如果中斷的反應不要那麼快,是不是就可以避免這個問題了呢?那麼有乙個辦法就是把中斷程式的執行時間延長,讓中斷執行的慢一點,這樣在第一次觸發中斷後cpu去執行中斷程式,當抖動引發的中斷請求發出...