c语言同一个按键区别长按短按,编写示例—同一按键长按和短按不同功能

一、逻辑编写思路梳理(长短按以1s做举例)

1、需求分析:

a、对于一个按键的长按和短按,都有一个按下(上升沿)的过程;

b、当按键在规定的时间内松开(下降沿),就短按;

c、按下的时长大于规定的时间就是长按。

d、那么要实现该功能,就需要在按键按下时,开始计时。在时间范围内出现下降沿就是短按,否则就是长按。

daa6b6121da857447720305d033edf23.gif

1.png (4.28 KB, 下载次数: 141)

2019-1-22 10:43 上传

e、对于现有的逻辑块中具有计时功能个采集下降沿功能的只有“one shot”和“retrig one shot”;其中“retrig one shot”是重复计时,不符合我们的需求。

f、同样的连续计时的还有“debounce”。

2、逻辑编写(写法一)a、用两个“one shot”分别采集按键的上升沿和下降沿。

daa6b6121da857447720305d033edf23.gif

2.png (12.73 KB, 下载次数: 127)

2019-1-22 11:03 上传

说明:

这里上升沿计时为0.8s,即按键按下去,输

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值