|
這樣改
不要連按就加 && key_up){key_up=0;
- unsigned char key_scan(unsigned char mode,unsigned int ti) //帶返回值的按鍵掃描函數(shù)
- {
- static unsigned char key_up=1; //按鍵按松開(kāi)標(biāo)志,key_up=1為無(wú)按鍵按下,key_up=0為有按鍵按下
- static unsigned int times;
- //if(mode)key_up=1; //mode為1,支持連按
- if((up==0||unit==0||down==0||md==0||led==0)) //只要在key_up=1時(shí),任意一個(gè)按鍵按下
- {
- times++; //記錄進(jìn)入低電平的時(shí)間
- if(times>=ti) //抖動(dòng)的時(shí)間已過(guò)
- {
- times=0;
- if(up==0 && key_up){key_up=0;return 1;}
- else if(unit==0 && key_up){key_up=0;return 2;}
- else if(down==0)return 3;
- else if(md==0)return 4;
- else if(led==0)return 5;
- }
- }
- else if(up==1&&unit==1&&down==1&&md==1&&led==1)
- key_up=1; //還是默認(rèn)電平,說(shuō)明無(wú)按鍵按下
- return 0;
- }
復(fù)制代碼
|
|