標(biāo)題: 關(guān)于矩陣鍵盤的問題,請教各位大佬 [打印本頁]

作者: JoeForMZ    時間: 2017-9-20 21:14
標(biāo)題: 關(guān)于矩陣鍵盤的問題,請教各位大佬
最近做一個項目,用到矩陣鍵盤,本以為這是整個項目中最簡單的,結(jié)果沒想到是一個BUG,請問如何判斷按鍵按了幾次,比如,按下S1進入設(shè)置界面,輸入1234,再按下S1,設(shè)置成功并保存,再按下S1退出設(shè)置界面。我試過給一個變量a,按一次+1,然后用if判斷,結(jié)果不可行,各位大佬遇過這問題嗎?有沒有好一點的思路,跪拜各位大佬。!

作者: wulin    時間: 2017-9-21 06:35
unsigned char key_scan()//4*4矩陣鍵盤掃描函數(shù)
{
        //略
}

void key_service()                //按鍵服務(wù)程序
{
        static unsigned char  count=0;//計數(shù)變量       
        key=key_scan();                //讀取鍵值
        switch(key)
        {
                case 0xee:                 //設(shè)置鍵鍵值
                {
                        count++;
                        switch(count)
                        {
                                case 1:
                                //任務(wù)1
                                break;
                                case 2:
                                //任務(wù)2
                                break;
                                case 3:
                                //任務(wù)3
                                count=0;
                                break;
                        }
                }               
                key=0;                        //執(zhí)行完任務(wù)清0
                break;

                case 0xde:
                //任務(wù)
                key=0;                        //執(zhí)行完任務(wù)清0
                break;
                ......
                ......
                ......
                ......
                case 0x77:
                //任務(wù)
                key=0;                        //執(zhí)行完任務(wù)清0
                break;

                default:
                break;
        }
}
作者: 浪人    時間: 2017-9-23 13:58
設(shè)置一個標(biāo)志變量,為0時且有鍵按下,致1并執(zhí)行內(nèi)容;為1時不執(zhí)行;當(dāng)所有鍵彈起重新致0
作者: chouguiyu    時間: 2017-9-23 21:16
估計問題是出在按鍵的掃描和識別上
作者: zl2168    時間: 2017-9-24 12:50
你錯啦!應(yīng)該是先理解才有好思路,而不是先有好思路,不要舍本求末。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1