2个回答
展开全部
key是硬件输入IO口,ucprekey是软标志,记录key刚才的状态。
有键按下时key=0, 键释放时key=1。
键刚按下而且先前是释放的(key==0 && ucprekey==1)
延时20ms, 避开机械按键按下时的抖动,使读按键输入可靠。
再次读按键key,如果确实按下,uccounter+1。
ucprekey 记录刚才key状态。ucprekey=0;
第二次再循环时,键没释放,但是ucprekey = 0; 所以不会进入延时,当然uccounter 也不会计数。
直到按键释放,key=1。但是ucprekey=0; 仍然所以不会进入延时,当然uccounter 也不会计数。
按键释放后,再一次按键,才会进入延时,uccounter+1。
所以,uccounter 是记录按键次数的。
如果是做实际使用的程序的话,按键释放时,也应该20ms延时,使读入按键输入可靠。
有键按下时key=0, 键释放时key=1。
键刚按下而且先前是释放的(key==0 && ucprekey==1)
延时20ms, 避开机械按键按下时的抖动,使读按键输入可靠。
再次读按键key,如果确实按下,uccounter+1。
ucprekey 记录刚才key状态。ucprekey=0;
第二次再循环时,键没释放,但是ucprekey = 0; 所以不会进入延时,当然uccounter 也不会计数。
直到按键释放,key=1。但是ucprekey=0; 仍然所以不会进入延时,当然uccounter 也不会计数。
按键释放后,再一次按键,才会进入延时,uccounter+1。
所以,uccounter 是记录按键次数的。
如果是做实际使用的程序的话,按键释放时,也应该20ms延时,使读入按键输入可靠。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询