标题: MCU按键长按三秒取消功能程序如何实现,求思路 [打印本页]

作者: 兜兜都豆豆    时间: 2021-5-25 10:55
标题: MCU按键长按三秒取消功能程序如何实现,求思路
有没有大神指导一下,感谢,按键长按三秒取消功能的实现。

作者: ksljxxq    时间: 2021-5-25 12:39
用按扭,长按来判断,如,key==0;num++;if(num==3000)达到条件取消自定义菜单就行了
作者: wake1212    时间: 2021-5-25 13:29
使用if语句判断,当计时器大于等于3000,就行了。
作者: 权威人物    时间: 2021-5-25 13:46
按下时定时器计数,计时到三秒钟执行,大概就是这思路,慢慢调节吧!还有很多细节要弄好的
作者: 583784982WW    时间: 2021-5-25 14:28
使用定时器判断,按下打开定时器
作者: cjjdemon    时间: 2021-5-25 14:40
每隔一小段时间检测一下按键状态(例如50ms),当在3s内每次检测按键都是按下状态时,即执行目标操作;如果有任意一次处于未按下状态,则计数清0,待下次检测到再重新计数。
这样可以不要单独用一个定时器或外部中断。
作者: cn_zhx    时间: 2021-5-25 16:26
用定时器,定时时间到如果没松开,认为有效,如果没到3秒就送开了,认为无效。
作者: zikanggong    时间: 2021-5-26 10:25
定时中断。计数三秒内都为按下状态。则处理。用中断就不会影响其他操作
作者: 非凡科技    时间: 2021-5-26 12:54
定时器设置50毫秒检测一次按键并计数3秒期间有一次检测不到,计数器就置零连续计数60次说明3秒时间到执行相应程序就行了,不要用!while死等,我是新手拙见
作者: 高人是高人    时间: 2021-5-28 09:15
简单实现:延时函数
通用:使用定时器计时,减少消耗cpu
作者: houjue    时间: 2021-5-29 11:51
其实像这种状态检测就是一个思路问题。在程序里检测按键是否松开,未松开就定时3秒再判断,仍然为未松开状态就进入需要的程序段即可。
作者: robinsonlin    时间: 2021-5-29 13:36
switch(key)
{
    case 0:
        if((Systick-Tpress)<3000) break;
        //------------按键响应操作
        Tpress = Systick;
    break;
    case 1:
        Tpress = Systick;
    break;
}
作者: wuhenyouyu    时间: 2021-5-29 14:11
这篇文章有思路,https://blog.csdn.net/wuhenyouyuyouyu/article/details/77622340




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1