1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2822|回復: 23
打印 上一主題 下一主題
收起左側

這是一個單片機紅外解碼的程序,但是長按會觸發一次短按命令,怎么改成長按不觸發短按啊

  [復制鏈接]
跳轉到指定樓層
樓主
ID:1094127 發表于 2023-11-8 20:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 RDFGRSG 于 2023-11-10 11:41 編輯

#include <REGX52.H>
#include "ir2.h"




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1094127 發表于 2023-11-8 23:04 | 只看該作者
有沒有大佬指點一下
回復

使用道具 舉報

板凳
ID:584814 發表于 2023-11-9 08:49 | 只看該作者
一般來說,這種情況是不松手測長按和短接造成的,長按中包含短按。
通常,改成松手后察看本次按鍵按下時長判斷是長按還是短按就可以。
回復

使用道具 舉報

地板
ID:1094127 發表于 2023-11-9 09:16 | 只看該作者
man1234567 發表于 2023-11-9 08:49
一般來說,這種情況是不松手測長按和短接造成的,長按中包含短按。
通常,改成松手后察看本次按鍵按下時長 ...

怎么改啊
回復

使用道具 舉報

5#
ID:1090634 發表于 2023-11-9 15:44 | 只看該作者
加個接收時間長短判斷,接收時間大于2秒的,可視為長按,否則為短按
回復

使用道具 舉報

6#
ID:1094127 發表于 2023-11-9 16:13 | 只看該作者
卡姿蘭大眼睛 發表于 2023-11-9 15:44
加個接收時間長短判斷,接收時間大于2秒的,可視為長按,否則為短按

程序里怎么改呢?
回復

使用道具 舉報

7#
ID:161164 發表于 2023-11-9 16:17 | 只看該作者
RDFGRSG 發表于 2023-11-9 16:13
程序里怎么改呢?

代碼不完整
回復

使用道具 舉報

8#
ID:123289 發表于 2023-11-9 16:44 | 只看該作者
即然【長按會觸發一次短按命令】哪么只要有長按,就去除一次短按。
如:
產生方,長按后N秒內的首個短按不放出。
使用方,長按后N秒內的首個短按不認可。
有其一即可。
回復

使用道具 舉報

9#
ID:1094127 發表于 2023-11-9 19:06 | 只看該作者

那部分不完整
回復

使用道具 舉報

10#
ID:1094127 發表于 2023-11-9 19:07 | 只看該作者
別說理論,上修改后代碼
回復

使用道具 舉報

11#
ID:1094127 發表于 2023-11-9 19:15 | 只看該作者
理論我也能想到,怎么實現呢?
回復

使用道具 舉報

12#
ID:1094127 發表于 2023-11-9 19:15 | 只看該作者
卡姿蘭大眼睛 發表于 2023-11-9 15:44
加個接收時間長短判斷,接收時間大于2秒的,可視為長按,否則為短按

怎么實現呢?
回復

使用道具 舉報

13#
ID:161164 發表于 2023-11-9 21:12 | 只看該作者

main()呢?
回復

使用道具 舉報

14#
ID:161164 發表于 2023-11-9 21:13 | 只看該作者
RDFGRSG 發表于 2023-11-9 19:15
理論我也能想到,怎么實現呢?

說說你的理論
回復

使用道具 舉報

15#
ID:140489 發表于 2023-11-10 08:31 | 只看該作者
看看我這個帖子,也許能幫到你http://m.raoushi.com/bbs/dpj-194975-1.html
回復

使用道具 舉報

16#
ID:161164 發表于 2023-11-10 09:00 | 只看該作者
RDFGRSG 發表于 2023-11-9 22:57
#include
#include "Delay.h"
#include "LCD1602.h"

Duanan_staet和Repeat_Flag在哪里置1?
回復

使用道具 舉報

17#
ID:1097455 發表于 2023-11-15 08:49 | 只看該作者
長按計時  松開判斷
回復

使用道具 舉報

18#
ID:275826 發表于 2023-11-15 19:22 | 只看該作者
檢測重復碼次數,大于一定次數就作為長按
回復

使用道具 舉報

19#
ID:485350 發表于 2023-11-29 11:48 | 只看該作者
按鍵按下置位標志A并開始計時,如果長按時間到了,清除標志A,,,按鍵釋放時,如果A為真,那么處理短按功能并清除標志A
回復

使用道具 舉報

20#
ID:57657 發表于 2023-11-29 13:12 | 只看該作者
按住按鍵計時毫秒,松開后再判斷長短按并清零計時。
回復

使用道具 舉報

21#
ID:1101749 發表于 2023-11-29 16:09 | 只看該作者
char Scanf_Key(void) {         static unsigned char sta = 0;         static unsigned int cnt = 0;         switch(sta)         {                 case 0://用來檢測是否有按鍵按下  有的話進入消抖狀態 MODE_KEY==0為按下                                         if(MODE_KEY == 0) sta = 1;break;                 case 1:                                         if(++cnt > 50)//消抖50ms  如果50ms之后按鍵還是按下的狀態則認為真的按下  否則就是抖動                                         {                                                         cnt=0;                                                         if(MODE_KEY == 0) sta = 2;//進入到下一個狀態                                                         else sta = 0;//回歸檢測狀態                                         }                                         break;                 case 2:                                         if(MODE_KEY==0)                                         {                                                  if(++cnt>1000)//長按                                                  {                                                                 sta = 3;                                                                 return 2;                                                  }                                         }                                         else //短按                                         {                                                         if(cnt>30)                                                         {                                                                 sta = 3;                                                                 return 1;                                                         }                                         }break;                 case 3:                                         if(MODE_KEY == 1)                                         {                                                         sta = 0;                                                         cnt = 0;                                         }                                         break;         }         return 0; }
回復

使用道具 舉報

22#
ID:1101749 發表于 2023-11-29 16:10 | 只看該作者
你試一下我發這個
回復

使用道具 舉報

23#
ID:1101749 發表于 2023-11-29 16:10 | 只看該作者
換個宏定義就可以了
回復

使用道具 舉報

24#
ID:275826 發表于 2023-11-30 09:06 | 只看該作者
luking 發表于 2023-11-29 16:09
char Scanf_Key(void) {         static unsigned char sta = 0;         static unsigned int cnt = 0;         switch(sta)         {  ...

樓主要的紅外遙控器按鍵
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表