// 讀取鍵值, 若緩沖區為空則等待按鍵按下后再讀取
unsigned char keyread(void)
{
while (keystat.head == keystat.rear)
feeddog();
keystat.rear++;
if (keystat.rear & 0x04)
return keypool[keystat.rear & 0x03].kva;
else
return keypool[keystat.rear & 0x03].kvb;
}
//////////////////////////////////////////////////////////
// 檢測按鍵狀態, 若有鍵按住返回1
/*[uncalled] bit keyisheld(void)
{
unsigned char c;
KEYBPORT |= 0x7F;
KEYBPORT &= 0x8F;
c = KEYBPORT | 0xF0;
KEYBPORT |= 0x7F;
return ~c;
}*/
////////////////////////////////////////////////////////////////
#pragma SAVE
#pragma NOAREGS
// 計算任意兩次定時掃描之間的定時掃描次數
unsigned tdis(unsigned start, unsigned end)
{
if (start <= end)
return (end - start);
else
return (~(start - end) + 1);
}
#pragma RESTORE
/////////////////////////////////////////////////////////////////
各位大俠,前輩,你們好,小弟初學單片機,有些問題翻書也沒有找到,比如此例中的:#pragma SAVE
#pragma NOAREGS,#pragma RESTORE
這三條語句是什么意思啊,承蒙各位前輩不吝賜教,小弟將感激不盡,不勝言表!
[此貼子已經被作者于2011-8-5 10:01:51編輯過]
|