找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1713|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

求幫忙分析下,區(qū)分短按長按的問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:835574 發(fā)表于 2022-8-20 12:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
433解碼得到的值,短按可以得到三次或者5次這個值。長按一直會得到這個值接收引腳變化時,進入解碼函數(shù)。成功解碼得到值后計數(shù)自增,然后時間計數(shù)清零。
然后時間計數(shù)5ms內(nèi)計數(shù)器沒增加就短按,增加就不管,直到計數(shù)器達到16次算長按。

但是寫代碼執(zhí)行時,長按判斷不了,一直按的時候,它也給我算短按,然演變成無數(shù)次短按了。

時間計數(shù)我嘗試延長了10ms結(jié)果一樣。如果延時太長可以實現(xiàn),但是快速短按就會失效,只當(dāng)按了一次。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1024371 發(fā)表于 2022-8-20 17:40 | 只看該作者
回復(fù)

使用道具 舉報

板凳
ID:146878 發(fā)表于 2022-8-20 23:15 | 只看該作者
給個思路,你得看下433發(fā)送數(shù)據(jù)的間隔是多少,比方說10ms發(fā)一組,那你成功接收一組時。開始倒計時20ms。同時啟動另一個正計時。倒計時時間內(nèi)只要接收到同樣的碼,就刷新倒計。只要倒計時不為0,維持正計時。當(dāng)正計時達到長按時間,就直接執(zhí)行長按功能。如果倒計時為0,但是正計時不夠長按,就執(zhí)行短按。
回復(fù)

使用道具 舉報

地板
ID:123289 發(fā)表于 2022-8-22 15:16 | 只看該作者
1、做個計時器PT,未按PT=0,按下計時增加,彈起清0。這樣你在任何時刻,都能知道按鍵按了多久了。
2、長按、短按、瞎按、亂按……,有一種算一種,做若干個標(biāo)記。
3、根據(jù)PT值,決定各個標(biāo)記是0是1。
4、根據(jù)標(biāo)記的0/1執(zhí)行做你想做的事,做完后清除標(biāo)記。
這是大致上的思路,細節(jié)上自己動動腦子。
回復(fù)

使用道具 舉報

5#
ID:835574 發(fā)表于 2022-8-22 17:08 | 只看該作者
塵土的飛揚 發(fā)表于 2022-8-20 17:40
可以參考黑51這個程序    http://www.torrancerestoration.com/bbs/dpj-212823-1.html

主要是不知道什么時候清理,就像掃描按鍵可以通過電平識別。這個無法通過電平,有雜波.然后遙控器的編碼快速短按,分析看到?jīng)]有結(jié)束碼.
回復(fù)

使用道具 舉報

6#
ID:835574 發(fā)表于 2022-8-22 17:13 | 只看該作者
pdwdzz 發(fā)表于 2022-8-20 23:15
給個思路,你得看下433發(fā)送數(shù)據(jù)的間隔是多少,比方說10ms發(fā)一組,那你成功接收一組時。開始倒計時20ms。同 ...

謝謝大佬,我按照這個思路試一下看看
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表