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时不支持连续按,mode==1是支持连续按呢??
大神们,麻烦你们帮忙解决一下,谢谢了
因为你mode==1时,key_up恒等于1,所以支持连续,当你mode==0时你每按一次key_up就会改变一次,所以不支持连续。如果想mode==0时支持连续那就第二句改成if(!mode)key_up=1;
你试试 把static u8 key_up=1
中的 static
关键字去掉