找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1690|回复: 5
打印 上一主题 下一主题
收起左侧

求帮忙分析下,区分短按长按的问题

[复制链接]
跳转到指定楼层
楼主
ID:835574 发表于 2022-8-20 12:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
433解码得到的值,短按可以得到三次或者5次这个值。长按一直会得到这个值接收引脚变化时,进入解码函数。成功解码得到值后计数自增,然后时间计数清零。
然后时间计数5ms内计数器没增加就短按,增加就不管,直到计数器达到16次算长按。

但是写代码执行时,长按判断不了,一直按的时候,它也给我算短按,然演变成无数次短按了。

时间计数我尝试延长了10ms结果一样。如果延时太长可以实现,但是快速短按就会失效,只当按了一次。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1024371 发表于 2022-8-20 17:40 | 只看该作者
可以参考黑51这个程序    http://www.51hei.com/bbs/dpj-212823-1.html
回复

使用道具 举报

板凳
ID:146878 发表于 2022-8-20 23:15 | 只看该作者
给个思路,你得看下433发送数据的间隔是多少,比方说10ms发一组,那你成功接收一组时。开始倒计时20ms。同时启动另一个正计时。倒计时时间内只要接收到同样的码,就刷新倒计。只要倒计时不为0,维持正计时。当正计时达到长按时间,就直接执行长按功能。如果倒计时为0,但是正计时不够长按,就执行短按。
回复

使用道具 举报

地板
ID:123289 发表于 2022-8-22 15:16 | 只看该作者
1、做个计时器PT,未按PT=0,按下计时增加,弹起清0。这样你在任何时刻,都能知道按键按了多久了。
2、长按、短按、瞎按、乱按……,有一种算一种,做若干个标记。
3、根据PT值,决定各个标记是0是1。
4、根据标记的0/1执行做你想做的事,做完后清除标记。
这是大致上的思路,细节上自己动动脑子。
回复

使用道具 举报

5#
ID:835574 发表于 2022-8-22 17:08 | 只看该作者
尘土的飞扬 发表于 2022-8-20 17:40
可以参考黑51这个程序    http://www.51hei.com/bbs/dpj-212823-1.html

主要是不知道什么时候清理,就像扫描按键可以通过电平识别。这个无法通过电平,有杂波.然后遥控器的编码快速短按,分析看到没有结束码.
回复

使用道具 举报

6#
ID:835574 发表于 2022-8-22 17:13 | 只看该作者
pdwdzz 发表于 2022-8-20 23:15
给个思路,你得看下433发送数据的间隔是多少,比方说10ms发一组,那你成功接收一组时。开始倒计时20ms。同 ...

谢谢大佬,我按照这个思路试一下看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表