2017.12.12
晚上写关于按键的程序时,看到教程上有关于支持按键长按的相关讲解,亲试之后,在这做一个记录吧!
先讲解下支持按键连续按与不支持按键连续按两者之间的区别:
通常我们见到的按键按一下(不管按下时间长短),相应的会执行一次命令(例如亮灯一次),这种情况就属于不支持按键连续按;相反,如果我们按下按键的时间持续的稍微长一些,这种情况下只要我们的按键是处于按下状态,程序就会重复的执行相应的命令(例如灯的亮灭状态),这种情况就属于支持按键连续按。
下面就是相应的代码:
#define KEY0_Val 1;
#define KEY1_Val 2;
#define KEY2_Val 3;
u8 KEY_Scan(u8 mode)
{
static u8 key_val=1; //按键按松开标志,,定义静态变量,只能初始化一次,后续调用时的值为上一时刻的值
if(mode) key_val=1;