新手上路
- 积分
- 45
- 金钱
- 45
- 注册时间
- 2019-8-19
- 在线时间
- 9 小时
|
发表于 2019-9-30 09:06:27
|
显示全部楼层
u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;//按键按松开标志 //static代表这个定义只执行一次
if(mode)key_up=1; //支持连按 //mode为1之后)key_up就会持续为1
if(key_up&&(KEY0==0||KEY1==0||KEY2==0||WK_UP==1))//一旦支持连按mode=1,按键按下之后,虽然下面key_up被置0,但按键没有松开,
//新一轮的扫描开始,下面又一次返回按键值,从而造成按键不放持续产生返回值的情况
{
delay_ms(10);//去抖动
key_up=0; //当不支持连按mode=0时,)key_up在这里被置0,从而这个if语句只会被执行一次就结束掉,不会出现持续按键的情况。
if(KEY0==0)return 1; //注意KEY0返回的是1
else if(KEY1==0)return 2;
else if(KEY2==0)return 3;
else if(WK_UP==1)return 4; //注意这个是1是按下,0是松开
}else if(KEY0==1&&KEY1==1&&KEY2==1&&WK_UP==0)key_up=1;
return 0;// 无按键按下,返回0
} |
|