欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 這是一個單片機紅外解碼的程序,但是長按會觸發一次短按命令,怎么改成長按不觸發短按啊 [打印本頁]

作者: RDFGRSG    時間: 2023-11-8 20:26
標題: 這是一個單片機紅外解碼的程序,但是長按會觸發一次短按命令,怎么改成長按不觸發短按啊
本帖最后由 RDFGRSG 于 2023-11-10 11:41 編輯

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





作者: RDFGRSG    時間: 2023-11-8 23:04
有沒有大佬指點一下
作者: man1234567    時間: 2023-11-9 08:49
一般來說,這種情況是不松手測長按和短接造成的,長按中包含短按。
通常,改成松手后察看本次按鍵按下時長判斷是長按還是短按就可以。
作者: RDFGRSG    時間: 2023-11-9 09:16
man1234567 發表于 2023-11-9 08:49
一般來說,這種情況是不松手測長按和短接造成的,長按中包含短按。
通常,改成松手后察看本次按鍵按下時長 ...

怎么改啊
作者: 卡姿蘭大眼睛    時間: 2023-11-9 15:44
加個接收時間長短判斷,接收時間大于2秒的,可視為長按,否則為短按

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

程序里怎么改呢?
作者: lkc8210    時間: 2023-11-9 16:17
RDFGRSG 發表于 2023-11-9 16:13
程序里怎么改呢?

代碼不完整
作者: yzwzfyz    時間: 2023-11-9 16:44
即然【長按會觸發一次短按命令】哪么只要有長按,就去除一次短按。
如:
產生方,長按后N秒內的首個短按不放出。
使用方,長按后N秒內的首個短按不認可。
有其一即可。

作者: RDFGRSG    時間: 2023-11-9 19:06
lkc8210 發表于 2023-11-9 16:17
代碼不完整

那部分不完整
作者: RDFGRSG    時間: 2023-11-9 19:07
別說理論,上修改后代碼
作者: RDFGRSG    時間: 2023-11-9 19:15
理論我也能想到,怎么實現呢?
作者: RDFGRSG    時間: 2023-11-9 19:15
卡姿蘭大眼睛 發表于 2023-11-9 15:44
加個接收時間長短判斷,接收時間大于2秒的,可視為長按,否則為短按

怎么實現呢?
作者: lkc8210    時間: 2023-11-9 21:12
RDFGRSG 發表于 2023-11-9 19:06
那部分不完整

main()呢?
作者: lkc8210    時間: 2023-11-9 21:13
RDFGRSG 發表于 2023-11-9 19:15
理論我也能想到,怎么實現呢?

說說你的理論
作者: lids    時間: 2023-11-10 08:31
看看我這個帖子,也許能幫到你http://www.raoushi.com/bbs/dpj-194975-1.html
作者: lkc8210    時間: 2023-11-10 09:00
RDFGRSG 發表于 2023-11-9 22:57
#include
#include "Delay.h"
#include "LCD1602.h"

Duanan_staet和Repeat_Flag在哪里置1?
作者: 圣博朗西斯    時間: 2023-11-15 08:49
長按計時  松開判斷
作者: tyrl800    時間: 2023-11-15 19:22
檢測重復碼次數,大于一定次數就作為長按
作者: 18680365301    時間: 2023-11-29 11:48
按鍵按下置位標志A并開始計時,如果長按時間到了,清除標志A,,,按鍵釋放時,如果A為真,那么處理短按功能并清除標志A
作者: npn    時間: 2023-11-29 13:12
按住按鍵計時毫秒,松開后再判斷長短按并清零計時。
作者: luking    時間: 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; }
作者: luking    時間: 2023-11-29 16:10
你試一下我發這個
作者: luking    時間: 2023-11-29 16:10
換個宏定義就可以了
作者: tyrl800    時間: 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)         {  ...

樓主要的紅外遙控器按鍵




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1