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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機接受到一個紅外信號后怎么復位

[復制鏈接]
跳轉到指定樓層
樓主
ID:944932 發表于 2021-12-15 11:40 來自觸屏版 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
接受到一個信號后,這個信號一直存在,停不下來了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:624769 發表于 2021-12-15 13:08 | 只看該作者
接受到一個信號? 是一個低電平? 還是解析完成后的一個編碼?

如果是解析完成后的一個編碼, 那么和接收就沒有任何關系了, 是你處理邏輯了.
通常解析完一個編碼,會置一個標志,如:  Resolution_End = 1;
然后,判斷編碼的程序, 是通過  if(Resolution_End == 1)   來對這個解析完的編碼進行后續操作,完了之后 Resolution_End = 0;  就不會再次操作了,  這個 Uart 中斷標志位 RI = 1, IF(RI) , RI =0  ,其實 是一個道理。
回復

使用道具 舉報

板凳
ID:944932 發表于 2021-12-15 13:21 來自觸屏版 | 只看該作者
188610329 發表于 2021-12-15 13:08
接受到一個信號? 是一個低電平? 還是解析完成后的一個編碼?

如果是解析完成后的一個編碼, 那么和接收就 ...

就是做的個紅外密碼鎖,通過解析紅外遙控器鍵值來有具體操作,然后按下一個按鍵以后會一直有這個信號的處理程序在執行,這是讀取鍵值的程序,該怎么改一下呢
void ReadIr() interrupt 0{        unsigned char j,k;        unsigned int err;        Time=0;                                                 DelayMs(70);        if(IRIN==0)                        {                                         err=1000;                                                while((IRIN==0)&&(err>0))                                        {                                                DelayMs(1);                        err--;                }                 if(IRIN==1)                                        {                        err=500;                        while((IRIN==1)&&(err>0))                                         {                                DelayMs(1);                                err--;                        }                        for(k=0;k<4;k++)                                        {                                                                for(j=0;j<8;j++)                                        {                                        err=60;                                                        while((IRIN==0)&&(err>0))                                        {                                                DelayMs(1);                                                err--;                                        }                                        err=500;                                        while((IRIN==1)&&(err>0))                                                {                                                DelayMs(1);//0.14ms                                                Time++;                                                err--;                                                if(Time>30)                                                {                                                        EX0=1;                                                        return;                                                }                                        }                                        IrValue[k]>>=1;                                                if(Time>=8)                                                                {                                                IrValue[k]|=0x80;                                        }                                        Time=0;                                                                                                }                        }                }                if(IrValue[2]!=~IrValue[3])                {                                                return;                }        }                        }
回復

使用道具 舉報

地板
ID:908826 發表于 2021-12-15 15:37 | 只看該作者
你找找例程參考一下吧,一般是考慮標準位。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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