|
樓主的這段程序很不老道,雖然編譯沒問題,執(zhí)行也沒問題,但過程卻有不確定性,會有時候你的原意沒有被正確表達,這取決于按下按鍵的那個時刻,這樣改動就完美了:
void scan_key(void)
{
uchar j;
if(key==0)//判斷按鍵是否被按下
{
delay(10);//按鍵消抖
if(key==0)//再次判斷是否被下
{
while(!key);//等待按鍵釋放
j++;//J加1
}
}
}
這樣就能100%表達你的原意,跟按下按鍵的時刻沒關(guān)系。
如果能書寫成這種格式,就非常明了了:
void scan_key(void)
{
uchar j;
if(key==0)
{
delay(10);
if(key==0)
{
while(!key);
j++;
}
}
} |
|