单片机双击 长按 c语言,单片机三种按键模式 单击 双击 长按

{

//中间间隔时间太长 判断为的单击

double_key=0;

count_single=0;

return 1;//单击执行的指令

}

if(Forever_count>time)

{

//长按不放

double_key=0;

count_single=0;

}

}

return 0;

}

/**************************************************************************

函数功能:按键扫描(这里的操作主要是为了单击)

入口参数:无

返回 值:按键状态 0:无动作 1:单击

**************************************************************************/

u8 click(void)

{

static u8 flag_key=1;//按键按松开标志

if(flag_key&&KEY==0)

{

flag_key=0;

return 1; // 按键按下

}

else if(1==KEY) flag_key=1;

return 0;//无按键按下

}

/**************************************************************************

函数功能:长按检测

入口参数:无

返回 值:按键状态 0:无动作 1:长按2s

**************************************************************************/

u8 Long_Press(void)

{

static u16 Long_Press_count,Long_Press;

if(Long_Press==0&&KEY==0) Long_Press_count++; //长按标志位未置1

else Long_Press_count=0;

if(Long_Press_count>200)

{

Long_Press=1; //这里是为了控制长按时间

Long_Press_count=0;

return 1;

}

if(Long_Press==1) //长按标志位置1

{

Long_Press=0;

}

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值