有哪位可以解釋一下這串代碼的意思嘛 就是怎么運行的 看了半天實在沒看懂它的邏輯關系
第一個if的條件是backup[i] != KeySta[i] 這兩個陣列一開始都賦了初值了啊 不就一直相等嗎 那不就進不去if函式內部嗎
第二個if條件backup[i] != 0一直是正確的啊 所以它怎么檢測的按鍵是否按下的啊 按照這個不應該總是按下的嗎
uchar pdata KeySta[4] = { //4位獨立按鍵當前狀態
1, 1, 1, 1
};
void KeyDriver()
{
uint8 i;
static uint8 pdata backup[4] = { //4位獨立按鍵備份值
1, 1, 1, 1
};
for (i=0; i<4; i++)//回圈檢測4個獨立按鍵
{
if (backup[i] != KeySta[i])//檢測按鍵
{
if(backup[i] != 0) //如果按鍵按下
{
KeyAction(KeyCodeMap[i]); //呼叫按鍵動作函式
}
backup[i] = KeySta[i];//重繪備份值
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/234057.html
標籤:單片機/工控
上一篇:單片機 哪位大神能幫小白解答一下
