高级会员

- 积分
- 556
- 金钱
- 556
- 注册时间
- 2020-3-6
- 在线时间
- 77 小时
|
1金钱
看了按键输入例程,有一个地方没搞明白
按键处理函 数
返回按键值
//mode: 不支持连续按 ; 支持连续按
//0 ,没有任何按键按下 1 KEY0 按下 2 KEY1 按下 3 KEY2 按下 4 KEY3 按下 WK_UP
注意此函数有响应优先级 ,KEY0>KEY1>KEY2>
u8 KEY_Scan(u8 mode)
{
static u8 key_up=1; 按键按松开标志
if(mode)key_up=1; 支持连按
if(key_up&&(KEY0==0||KEY1==0||KEY2==0||KEY3==1))
{
delay_ms(10); 去抖动
key_up=0;
if(KEY0==0)return KEY0_PRES
else if(KEY1==0)return KEY 1 _PRES
else if(KEY2==0)return KEY 2 _PRES
else if(KEY3==1) return WKUP_PRES
}else if(KEY0==1&&KEY1==1&&KEY2==1&&KEY3==0)key_up=1;
return 0; // 无按键按下
}
这里的“if(mode)key_up=1; 支持连按”这句似乎并没有起作用啊,key_up经过初始化,不管mode是0还是1,key_up的值都是1,是如何区分是否支持连按得呢?
|
|