背景:之前是将按键扫描代码放在while循环里,但这样会不断的扫描按键,我们可以设置每10MS扫描一次按键,而且如果在第一个10MS扫描到按键被按下,在第二个10MS,甚至第3个10MS也发现按键被按下,我们就可以实现按键的长短按
上述程序为增加程序的可读性,我们用c语言中的枚举
我们使用私有化函数进行按键检测
还需要比上一次多声明两个变量
在主函数中进行功能显示
我们还差每个10MS进行按键扫描,接下来需要用到嘀嗒计时器,打开it.c文件
找到这个函数,这个是嘀嗒计时器,每隔1MS进行一次,所以我们可以设置一个时间变量,让他在10MS时进行一次按键扫描函数
记得在it.c文件上面声明新的变量,而且将main.c中的KeyScan()函数再次声明
这样就实现了按键的消抖和松手检测,接下来我们进行长短按功能的实现 ,我们只需要在main.c文件中的while函数进行修改,增加一个之前设置按键按下时间的标志位判断就可以了
这样我们就实现了按下按键1小于700MS打开蜂鸣器,按下按键1大于1200MS打开LED,就实现了按键的长短按