久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1891|回復: 6
打印 上一主題 下一主題
收起左側(cè)

紅外重復碼及按鍵切換流暢

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:772400 發(fā)表于 2023-3-7 17:12 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
紅外解碼后值怎么處理比較流暢。還有要按住處理重復碼的時候

1.PNG (9.37 KB, 下載次數(shù): 55)

1.PNG

2.PNG (21.61 KB, 下載次數(shù): 55)

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

使用道具 舉報

沙發(fā)
ID:772400 發(fā)表于 2023-3-7 17:22 | 只看該作者
時鐘4M\4T的,按鍵快速切換感覺不流暢有點阻塞一樣,系統(tǒng)任務并不復雜
回復

使用道具 舉報

板凳
ID:485350 發(fā)表于 2023-4-4 18:08 | 只看該作者
#define IR_STATUS_LOCK             0X01    //紅外鎖定
#define IR_STATUS_RECEIVE_OK       0X02    //紅外接收完成
#define IR_STATUS_KEY_UP           0X04    //紅外釋放


/*聯(lián)合體+結構體*/
typedef union
{
    u8 Buf[4];
        struct
        {
                u8 User0;//用戶碼
                u8 User1;//用戶碼反碼
                u8 Key0;//按鍵碼
                u8 Key1;//按鍵碼反碼
        }IR_Data;
}IR_Type;


/*中斷內(nèi)變量建議使用IDATA*/
idata IR_Type IR_Code;
idata u8 IR_Status;
idata u8 IR_Receive_Bit;
idata u8 IR_Receive_Data[4];
idata u8 IR_L_Time;
idata u8 IR_H_Time;

idata u16 IR_Free_Time;
idata u16 IR_Map;


//中斷125us內(nèi)調(diào)用
void IR_Receive()
{
        if(IR_Status & IR_STATUS_LOCK)
        {
                IR_Free_Time++;
                if(IR_Free_Time >= 1000)//1000=125ms檢測不到引導信號或重發(fā)信號,認為紅外釋放
                {
                        IR_Status ^= (IR_STATUS_LOCK | IR_STATUS_KEY_UP);
                }
        }
       
        if(IR_IO)
        {
                IR_H_Time++;
        }
        else
        {
                IR_L_Time++;
                if(IR_H_Time)
                {
                        if(IR_L_Time >= 60)
                        {
                                IR_Free_Time = 0;//接收到引導碼或重復碼,清除紅外釋放計數(shù),
                                IR_Receive_Bit = 0;
                                if(IR_H_Time >= 30)//3750us
                                {
                                        //進入此處表示接收到引導碼
                                        IR_Map = 0;//映射按鍵處理方式,為了支持按鍵快速處理
                                }
                        }
                        else if(IR_H_Time >= 24)
                        {
                                IR_Receive_Bit = 0;//減小干擾導致進入接收到32位數(shù)據(jù)(例如手指碰觸接收頭塑料)
                        }
                        else if(IR_L_Time >= 2)
                        {
                                IR_Receive_Data[IR_Receive_Bit >> 3] >>= 1;
                                if(IR_H_Time >= 9)
                                {
                                        IR_Receive_Data[IR_Receive_Bit >> 3] |= 0x80;  //logic 1
                                }
                                IR_Receive_Bit++;
                                if(IR_Receive_Bit == 32)
                                {
                                        IR_Receive_Bit = 0;
                                        IR_Status |= (IR_STATUS_RECEIVE_OK | IR_STATUS_LOCK);
                                        IR_Code.Buf[0] = IR_Receive_Data[0];
                                        IR_Code.Buf[1] = IR_Receive_Data[1];
                                        IR_Code.Buf[2] = IR_Receive_Data[2];
                                        IR_Code.Buf[3] = IR_Receive_Data[3];
                                        //BEEP_IO = !BEEP_IO;//測試接收代碼點
                                }
                        }
                        IR_H_Time = 0;
                        IR_L_Time = 0;
                }
        }
}


//功能:紅外按鍵碼的功能處理,調(diào)用方式:建議Main中10毫秒處理一次
void IR_Key_Handle()
{
        //紅外按鍵釋放,一般不用處理
        if(IR_Status & IR_STATUS_KEY_UP)
        {
                IR_Status ^= IR_STATUS_KEY_UP;
                IR_Map = 0;//紅外按鍵釋放,清除映射
        }
       
    //紅外按鍵處理-映射到普通按鍵處理
    if(IR_Status & IR_STATUS_RECEIVE_OK)
    {
        IR_Status ^= IR_STATUS_RECEIVE_OK;//清除IR接收成功標志                  
               
                if(IR_Code.IR_Data.User0 != 0x00)
                {
                        return;//用戶碼判斷,如無判斷,易被其他遙控誤操作
                }
               
                if((IR_Code.IR_Data.User0 ^ IR_Code.IR_Data.User1) != 0xff)
                {
                        return;//按照NEC協(xié)議,進行用戶碼反碼校驗,不通過,退出
                }

                if((IR_Code.IR_Data.Key0 ^ IR_Code.IR_Data.Key1) != 0xff)
                {
                        return;//按照NEC協(xié)議,進行按鍵碼反碼校驗,不通過,退出
                }

        IR_Map = KEY_POWER;
//                 switch(IR_Code.IR_Data.Key0)
//                 {
//                    case 0X00F://開關
//                            IR_Map = KEY_POWER;
//                            break;
//                    case 0x40://搖頭
//                            IR_Map = KEY_LR_SWING;
//                            break;
//                    case 0x20://+
//                            IR_Map = KEY_INC;
//                            break;
//                    case 0x60://-
//                            IR_Map = KEY_DEC;
//                            break;
//                    case 0x10://定時
//                            IR_Map = KEY_TIMING;
//                            break;         
//                 }
    }
}
回復

使用道具 舉報

地板
ID:772400 發(fā)表于 2023-4-28 14:09 | 只看該作者
18680365301 發(fā)表于 2023-4-4 18:08
#define IR_STATUS_LOCK             0X01    //紅外鎖定
#define IR_STATUS_RECEIVE_OK       0X02    // ...

好久沒看,多謝
回復

使用道具 舉報

5#
ID:485350 發(fā)表于 2023-4-28 18:30 | 只看該作者

關鍵是能不能用,叼毛
回復

使用道具 舉報

6#
ID:772400 發(fā)表于 2023-4-28 19:05 來自觸屏版 | 只看該作者
18680365301 發(fā)表于 2023-4-28 18:30
關鍵是能不能用,叼毛

不用代碼,要的是思路
回復

使用道具 舉報

7#
ID:1040201 發(fā)表于 2023-5-26 14:39 | 只看該作者
18680365301 發(fā)表于 2023-4-28 18:30
關鍵是能不能用,叼毛

回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人三级av | 色久五月 | 国产欧美一区二区三区另类精品 | 视频三区 | 亚洲一区| 成人精品在线视频 | 日韩一区二区在线视频 | 精品久久网 | 久久久精品网 | 亚洲第一黄色网 | 欧美在线亚洲 | 羞羞视频免费观 | 一级欧美一级日韩片免费观看 | 91亚洲精选| 久久久www| 国产精品国产三级国产aⅴ原创 | 国产精品久久久久久52avav | 三级特黄特色视频 | 亚洲免费高清 | 日日骚视频 | 亚洲午夜视频在线观看 | 一级a性色生活片久久毛片 午夜精品在线观看 | 福利视频网 | 成人亚洲精品 | 日韩欧美在线观看一区 | av永久免费 | 午夜影院免费体验区 | 欧美日韩国产中文字幕 | 国产激情精品一区二区三区 | 涩涩视频在线播放 | 亚洲欧美中文日韩在线 | 久久久久国产一区二区三区四区 | 欧美福利影院 | 久久天天躁狠狠躁夜夜躁2014 | 激情五月婷婷 | 一区二区伦理电影 | 手机在线观看 | 欧美日韩久久精品 | 久久精品久久综合 | 高清黄色网址 | 久久最新|