?为什么有了if(mode)key_up=1; 这个语句 ,就支持连按了??

2019-07-20 22:46发布


为什么有了if(mode)key_up=1;  这个语句 ,就支持连按了?


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 KEY_RIGHT;
else if(KEY1==0)return KEY_DOWN;
else if(KEY2==0)return KEY_LEFT;
else if(KEY3==1)return KEY_UP;
}else if(KEY0==1&&KEY1==1&&KEY2==1&&KEY3==0)key_up=1;    
  return 0;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
43条回答
张旭东123
1楼-- · 2019-07-24 17:11
 精彩回答 2  元偷偷看……
donkey
2楼-- · 2019-07-24 20:47
 精彩回答 2  元偷偷看……
十七年
3楼-- · 2019-07-25 00:14
TinyBoy 发表于 2014-10-1 15:39
回复【3楼】心染红尘:
---------------------------------
看不明白,找C语言的书来看,还不明白,你可以自 ...

mode 的用法在C语言哪块有讲到啊?
TinyBoy
4楼-- · 2019-07-25 04:19
 精彩回答 2  元偷偷看……
shuimuyaori
5楼-- · 2019-07-25 06:05
不错,温故而知新啊
未来的风筝
6楼-- · 2019-07-25 08:53
我来大概哦总结一下吧,我也刚看这个程序:
1)mode是函数接口,调用的时候mode可以选择:a)mode=0,每次只能读取一次按键值,需要KE3复位才能再次读取;b)mode=1,此时key_up每次均为1,可以连续读取(不管是否KEY3);
2)mode=0时,是static使得key_up保持调用时的状态,例如,第一次是KEY1,则key_up会变成0,再次调用函数时候,key_up还是0,函数返回值为0,表示无变化。

一周热门 更多>