标题: 求帮忙分析下,区分短按长按的问题 [打印本页]

作者: dingding16    时间: 2022-8-20 12:16
标题: 求帮忙分析下,区分短按长按的问题
433解码得到的值,短按可以得到三次或者5次这个值。长按一直会得到这个值接收引脚变化时,进入解码函数。成功解码得到值后计数自增,然后时间计数清零。
然后时间计数5ms内计数器没增加就短按,增加就不管,直到计数器达到16次算长按。

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

时间计数我尝试延长了10ms结果一样。如果延时太长可以实现,但是快速短按就会失效,只当按了一次。

作者: 尘土的飞扬    时间: 2022-8-20 17:40
可以参考黑51这个程序    http://www.51hei.com/bbs/dpj-212823-1.html
作者: pdwdzz    时间: 2022-8-20 23:15
给个思路,你得看下433发送数据的间隔是多少,比方说10ms发一组,那你成功接收一组时。开始倒计时20ms。同时启动另一个正计时。倒计时时间内只要接收到同样的码,就刷新倒计。只要倒计时不为0,维持正计时。当正计时达到长按时间,就直接执行长按功能。如果倒计时为0,但是正计时不够长按,就执行短按。

作者: yzwzfyz    时间: 2022-8-22 15:16
1、做个计时器PT,未按PT=0,按下计时增加,弹起清0。这样你在任何时刻,都能知道按键按了多久了。
2、长按、短按、瞎按、乱按……,有一种算一种,做若干个标记。
3、根据PT值,决定各个标记是0是1。
4、根据标记的0/1执行做你想做的事,做完后清除标记。
这是大致上的思路,细节上自己动动脑子。
作者: dingding16    时间: 2022-8-22 17:08
尘土的飞扬 发表于 2022-8-20 17:40
可以参考黑51这个程序    http://www.51hei.com/bbs/dpj-212823-1.html

主要是不知道什么时候清理,就像扫描按键可以通过电平识别。这个无法通过电平,有杂波.然后遥控器的编码快速短按,分析看到没有结束码.
作者: dingding16    时间: 2022-8-22 17:13
pdwdzz 发表于 2022-8-20 23:15
给个思路,你得看下433发送数据的间隔是多少,比方说10ms发一组,那你成功接收一组时。开始倒计时20ms。同 ...

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




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