按键有两种模式
①支持连按(例如电视调台长按持续换台)
②不支持连按
C语言小知识
C语言关键字 static声明的静态变量,存储在静态存储区。
它在函数调用结束之后,不会被释放。它的值会一直保留下来。所以可以说static申明的局部变量,具有记忆功能。
Q:每次调用getValue函数之后,返回值是多少?
int getValue(void)
{
int flag=0;
flag++;
return flag;
}
int getValue(void)
{
static int flag=0;
flag++;
return flag;
}
解释
前者每次调用getValue函数,flag都会被重新置0(每次调用函数,flag都=0);而后者第一次调用了getValue函数,flag被正常置0,当第二次调用此函数时,flag则不会被重新赋值,而是等于上一次调用的返回值。(第二次调用函数,flag=1,第三次调用,flag=2...)
接下来可以写不同模式的按键函数啦
①支持连按的一般思路
u8 KEY_Scan(void)
{
if(KEY按下)
{
delay_ms(10);//延时1