u8 unsigned char
u16 unsigned short
u32 unsigned int
*/
u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;
if(mode)key_up=1;
if(key_up&&(KEY0==0||KEY1==0||KEY2==0||WK_UP==1))
{
delay_ms(10);
key_up=0;
if(KEY0==0)return KEY0_PRES;
else if(KEY1==0)return KEY1_PRES;
else if(KEY2==0)return KEY2_PRES;
else if(WK_UP==1)return WKUP_PRES;
}else if(KEY0==1&&KEY1==1&&KEY2==1&&WK_UP==0)key_up=1;
return 0;
}
新手上路。。。逻辑乱掉了
如果mode等于0,if(mode)key_up=1;就不执行
如果mode等于1,if(mode)key_up=1;就执行
问题是 前面不是已经定义了static u8 key_up=1;吗?
这不是横竖都是key_up都等于1
if(key_up&&(KEY0==0||KEY1==0||KEY2==0||WK_UP==1))这一句看得也不是很明白
劳烦帮我解释一下
|