C语言处理按键的 单击(短按),长按,双击,多击 处理

本文介绍了如何用C语言处理按键的单击、双击、长按事件。通过定义按键模型,包括单击、双击和长按的判断条件,并在主函数中每5ms调用处理函数APP_KEY_Task()来检测按键状态。通过结构体保存状态和计时,实现了按键的不同操作回调,如短按键处理、双击处理和长按键处理。
摘要由CSDN通过智能技术生成

【一】:按键的模型
(1)单击按键: 按键按下到释放的一个过程,t1 如果大于 50ms.
在这里插入图片描述
(2)双击按键:如果两个脉冲之间相差时间t2 < 200ms 认为是 双按键
否则 判定为两次不相干的按键行为。
<同样可以判定连续多次按键,但是一般没什么意义>
在这里插入图片描述
(3)长按键:如果按下时间t3 >=500ms 判定为长按键
在这里插入图片描述
【二】主函数的处理
按键的处理函数: void APP_KEY_Task(void) 。 需要每5ms 调用一次
该函数需要判断上次状态last,以及当前的状态now。

读取IO获取now状态
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值