要求实现功能:按第一次KEY1,LED1灯亮,第二次KEY1,LED2灯亮,第三次KEY1,LED2灯亮。
出现问题:
-
按下按键,灯不按照程序设定顺序亮(轮到那个灯亮)。
-
不稳定跳动。
-
按下按键不放开时,三个灯微弱长亮。
问题根源(及解决方法):
-
FLAG=1与else if(!KEY1)FLAG=0;松开时等于0;考虑松开时,再次按下按键才会才会执行第一个if的内容,也就是LED1,LED2,LED3,全部不亮,按键按照这样的速度循环往复执行功能,每按下一次就执行一个LED1,LED2,LED3亮,全部不亮功能。
如果没有FLAG=1与else if(!KEY1)FLAG=0;一直按下时会一直执行第一个大if,松开时执行到那个就是那个,因此就会出现上述问题。
添加图片注释,不超过 140 字(可选)
2.消抖,需要调改延时(不是最主要的地方),使它相对稳定跳动。