Static申明的局部變量,存儲在靜態(tài)存儲區(qū)。
它在函數(shù)調(diào)用結(jié)束之后,不會被釋放。它的值會一直保留下來。
所以可以說static申明的局部變量,具有記憶功能。
按鍵掃描(支持連續(xù)按)的一般思路u8 KEY_Scan(void)
{
if(KEY按下)
{
delay_ms(10);//延時10-20ms,防抖。
if(KEY確實按下)
{
return KEY_Value;
}
return;//無效值
}
}
u8 KEY_Scan(void)
{
static u8 key_up=1;
if(key_up && KEY)//按下
{
delay_ms(10);//延時,防抖
key_up=0;//標記這次key已經(jīng)按下
if(KEY)//確實按下
{
return KEY_VALUE;
}
}else if(KEY沒有按下) key_up=1;
return ;//沒有按下
}
u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;
if(mode==1) key_up=1;//支持連續(xù)按
if(key_up && KEY按下)
{
delay_ms(10);//延時,防抖
key_up=0;//標記這次key已經(jīng)按下
if(KEY確實按下)
{
return KEY_VALUE;
}
}else if(KEY沒有按下) key_up=1;
return 沒有按下
}