0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

实现按钮的短按与长按的区分

jf_61nrsJTz 来源:方正智芯 作者:北岛李工 2022-10-31 09:29 次阅读

收到小伙伴的来信,怎样区分按钮的短按(按下后松开)与长按(按下并保持一段时间)。

说实话,在工业现场,按钮长按来实现某个功能使用的并不多。我曾经在某个信号需要人工确认时使用了长按功能,当时是结合定时器与按钮的输入信号来实现的。

要实现按钮的短按与长按的区分,我提供一种思路供大家参考。

基本思路:

使用沿信号配合定时器指令。如果在短时间内检测到了该信号的上升沿及下降沿,则认为按钮是短按状态;如果在某个时间内(比如2秒钟),只检测到了该信号的上升沿而没有下降沿,则认为按钮是长按状态;

结合这个思路我使用SCL语言实现了一个函数块FB5020_BtnClickHold,其变量声明如下图所示:

645e01b2-58ab-11ed-a3b6-dac502259ad0.png

其中:

signal:要检测的按钮信号(或其它类似信号);

R:用于复位内部变量;

timeCheck:用于检测的时间,默认2秒;

click:按钮是短按状态;

hold:按钮是长按状态;

注:短按与长按不会同时为TRUE。为保证正确,应在获取信号后使用R对内部静态变量进行复位;

代码如下图所示:

649b7a38-58ab-11ed-a3b6-dac502259ad0.png

这段代码我已经测试过,如果你有任何问题或其它思路,欢迎留言交流。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 定时器
    +关注

    关注

    23

    文章

    3246

    浏览量

    114721
  • SCL
    SCL
    +关注

    关注

    1

    文章

    239

    浏览量

    17057

原文标题:西门子SCL编程实例——按钮的短按与长按

文章出处:【微信号:方正智芯,微信公众号:方正智芯】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    mico按键长按短按怎么实现

    mico按键长按短按怎么实现
    发表于 07-31 17:02

    stm32外部中断按钮短按长按1.0的程序分享

    stm32外部中断按钮短按长按1.0的程序分享
    发表于 11-23 07:10

    stm32的按键是如何去实现长按及其短按

    stm32的按键是如何去实现长按及其短按的?具体实现过程是怎样的?
    发表于 12-01 08:06

    如何通过外部中断实现按键的长按短按

    瑞萨单片机通过外部中断实现按键的长按短按
    发表于 12-01 07:57

    stm32按键的长按/短按怎么实现

    stm32按键的长按/短按怎么实现
    发表于 12-02 07:41

    实现单片机按键长按短按功能的方法

    写在前面 一般我们在写单片机程序的时候都要用到按键,在按键较少的情况下我们需要一个按键可以返回不同的按下结果,也就是长按短按。程序实现 大致思路是按键按下时打开定时器,按键松开时关闭定时器,最后
    发表于 12-06 07:40

    单片机状态机按键长按短按实现

    本文只介绍主要代码段,完整代码可参考我的“蓝桥杯单片机状态机按键按下和松开实现不同功能”蓝桥杯单片机状态机按键长按短按实现不同功能定义变量key_time 按键计时时长key_tim
    发表于 01-06 08:26

    如何利用定时器区分长按短按

    范围:0.1V~5.0V),阈值调整完成后,再次按下S7按键,退出"设置"界面(图6),返回数据显示界面。”如何利用定时器区分长按短按?解决思路
    发表于 01-21 06:54

    MCU里按键的短按长按功能如何实现

    MCU里按键的短按长按功能如何实现
    发表于 02-09 06:54

    按键长按短按效果

    按键长按短按效果 C51单片机源码,KEIL源文件,C语言编写
    发表于 06-20 16:15 64次下载

    基于状态机的单片机按键短按长按功能的实现

    本文主要介绍了基于状态机的单片机按键短按长按功能的实现,按键的击键过程也是一种状态的切换,也可以看着是一个状态机,一个按键的击键过程包括:按下、抖动、闭合、抖动和释放等状态。本次系统的设计,能
    发表于 12-28 08:43 1.9w次阅读
    基于状态机的单片机按键<b class='flag-5'>短按</b><b class='flag-5'>长按</b>功能的<b class='flag-5'>实现</b>

    使用单片机实现按键长按短按效果的C语言程序免费下载

    本文档的主要内容详细介绍的是使用单片机实现按键长按短按效果的C语言程序免费下载。
    发表于 11-26 17:31 56次下载

    瑞萨单片机之外部中断实现按键的长按短按(二)

    瑞萨单片机通过外部中断实现按键的长按短按
    发表于 11-22 14:21 20次下载
    瑞萨单片机之外部中断<b class='flag-5'>实现</b>按键的<b class='flag-5'>长按</b>与<b class='flag-5'>短按</b>(二)

    如何区分按钮短按长按

    怎样区分按钮短按(按下后松开)与长按(按下并保持一段时间)。说实话,在工业现场,按钮长按
    的头像 发表于 02-07 13:53 3676次阅读
    如何<b class='flag-5'>区分</b><b class='flag-5'>按钮</b>的<b class='flag-5'>短按</b>与<b class='flag-5'>长按</b>?

    RL78/G23 SMS 短信按钮长按/短按判断应用说明

    电子发烧友网站提供《RL78/G23 SMS 短信按钮长按/短按判断应用说明.pdf》资料免费下载
    发表于 01-29 11:03 0次下载
    RL78/G23 SMS 短信<b class='flag-5'>按钮</b><b class='flag-5'>长按</b>/<b class='flag-5'>短按</b>判断应用说明