wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

幾種比較流行和成熟的紅外解碼程序做一下研究和總結2

作者:山西長治IT男   來源:本站原創   點擊數:  更新時間:2014年12月14日   【字體:

 本文接上篇繼續分析《幾種比較流行和成熟的紅外解碼程序做一下分析和總結1》:http://www.izizhuan.cn/mcu/3320.html

      下面說一說第二種過濾重復碼的方法,(這個方法是老板告訴我的,呵呵,不解釋)廢話不多說,直接上程序:
/*-----------------------------------------------------------------------------------------
                  定時器0中斷處理
-----------------------------------------------------------------------------------------*/
void tim0_isr (void) interrupt 1 using 1
{
       irtime++; //用于計數2個下降沿之間的時間,256us進一次定時器中斷
         if(irtime>=1000)//irtime>=1000說明按鍵已經松天有1000*256=256ms了,故可以使能紅外接收功能
         {
                  ir_flag=0;//使能紅外接收功能
         }
}
/*-----------------------------------------------------------------------------------------
                  外部中斷0中斷處理
-----------------------------------------------------------------------------------------*/
void EX0_ISR (void) interrupt 0 //外部中斷0服務函數
{
       static unsigned char  i;            //接收紅外信號處理
       static bit startflag;                //是否開始處理標志位
if(irtime<=54&&irtime>=50)//接收到引導碼 TC9012的頭碼,9ms+4.5ms
{
         i=0;
}
if(ir_flag==1)
{
         irtime=0;                             //清零計數器
         return;
}
if(ir_flag==0)
{
                   irdata[i]=irtime;//存儲每個電平的持續時間,用于以后判斷是0還是1
             irtime=0;//清零irtime變量(老板習慣叫做寄存器)
             i++;//數組下標自增1
               if(i==33)
                {
                         irok=1;//接收完33個紅外數據
                            i=0;//數組下標清零
                            ir_flag=1;//失能紅外接收功能
                   }
         }
}
       
下面研究第二種紅外解碼的程序,這個程序沒有用到任何中斷,非常有意思啊,直接上源碼.不解釋.
/*----------------------------------------------------------------------------------------------------
                               紅外解碼處理函數
----------------------------------------------------------------------------------------------------*/
void ir(void)
{
         if(ir_check_flag==1)
         {
                   ir_check_flag=0;
 
                   if(PB.0==1)
                   {
                            if(irisH_bit==0)
                            {
                                     irisH_bit= 1;
                                     //這里可以添加上升沿到時時,做相應的處理
                            }
                   }
                   else
                   {
                            if(irisH_bit==1)
                            {
                                     irisH_bit= 0;
                                     if(irtime<=110&&irtime>=102)             //引導碼TC9012的頭碼,9ms+4.5ms
                                     {
                                               ramaddr1= irdata;
                                               num= 0;
                                               ir_en_flag=0;
                                     }
                                     if(ir_en_flag==1)
                                     {
                                               irtime=0;                  //如果是重復碼就將irtime清零,然后退出函數
                                               return;
                                     }
                                     if(ir_en_flag==0)
                                     {
                                               *ramaddr1= irtime;
                                               ramaddr1++;
                                               irtime= 0;
                                               num++;
                                               if(num==33)
                               {
                                   irok=1;          //32個數據全部存儲完畢,一幀數據接收完畢
                                                        num=0;
                                                        ramaddr1= irdata;
                                                        ir_en_flag=1;
                               }
                                     }
                            }
                   }
                   irtime++;
         }
         else
         {
                   return;
         }
}
         分析一下這個程序的算法,其思路類似于原來中斷函數的方法,也是記錄兩個下降沿之間的時間,并將其存入33個元素的一個數組中,數組的第一個位置存入的是那個淫蕩的引導碼,后面的32個位置存入的是32個紅外編碼.這個算法關鍵的一點就是那個irisH_bit位變量的作用.那個位變量是用來記錄邊沿的,無論是下降沿還是上升沿都能記錄,這個記錄的作用就是只能使相關的處理只在相應的上升沿還是下降沿作用一次.這個函數每128us掃描一次.每128us計數器irtime增加一次.先來分析程序運行時的情況,當沒有下降沿的時候,一直是高電平一直執行if(PB.0==1)下面的語句irtime一直做疊加的操作.當加到最大值時又變為0做新一輪的疊加操作.這個是沒有意義的,等到第一個下降沿到來的時候進入else語句由于是第一個下降沿那個這個irtime就是隨機的了,這時ir_en_flag=0,因為是初始化時的值,下面分兩種情況來說明這時的情況,如果這個irtime的時間剛好在引導碼的區間,那么就會清零num,數組下標清0然后進入if(ir_en_flag==0)語句將這個值取入數組的第一個位置,然后下一個下降沿來到了,這時這個時間就是實實在在的引導碼的時間,同樣會進入if(irtime<=110&&irtime>=102)那一個分支,這時將數組下標清零,同時進入下一條分支語句if(ir_en_flag==0),這時將先前存入數組的每一個元素覆蓋掉,那個也就不存在了,而后是32個紅外數據的存入,這里有一個值得注意的問題在第32個紅外數據接收完成之后,會有一個下降沿,這個是不屬于那32個數據的電平.是多出來的一個下降沿,當這33個數據接收完成的時候,會關斷數據的存儲,只有下一次再接收到引導碼才會再次開啟數據的存儲功能,這樣做可以有效的把后面的重復碼干掉,這個程序的關鍵仍然是那個引導碼的時間只有這個時間足夠準確,足夠狹窄才能和那個重復碼區別開來.
         下面提供另一個過濾重復碼的方法,直接上源代碼,不解釋.
/*----------------------------------------------------------------------------------------------------
                                    紅外解碼處理函數
----------------------------------------------------------------------------------------------------*/
void ir(void)
{
         if(ir_check_flag==1)
         {
                   ir_check_flag=0;
                   if(PB.0==1)
                   {
                            if(irisH_bit==0)
                            {
                                     irisH_bit= 1;
                            }
                   }
                   else
                   {
                            if(irisH_bit==1)
                            {
                                     irisH_bit= 0;
                                     if(irtime<=110&&irtime>=102)   //引導碼 TC9012的頭碼,9ms+4.5ms
                                     {
                                               ramaddr1= irdata;
                                               num= 0;
                                     }
                                     if(ir_en_flag==1)
                                     {
                                               irtime=0;           //如果是重復碼就將irtime清零,然后退出函數
                                               return;
                                     }
                                     if(ir_en_flag==0)
                                     {
                                               *ramaddr1= irtime;
                                               ramaddr1++;
                                               irtime= 0;
                                               num++;
                                               if(num==33)
                               {
                                   irok=1;          //32個數據全部存儲完畢,一幀數據接收完畢
                                                        num=0;
                                                        ramaddr1= irdata;
                                                        ir_en_flag=1;
                               }
                                     }
                            }
                   }
                   irtime++;
                   if(irtiem>=10000)              //如果長時間沒有按下搖控的按鍵,就重新接收下一幀數據
                   {
                            ir_en_flag=0;
                   }
         }
         else
         {
                   return;
         }
}
         這個程序去除重復碼的方法就是老板告訴我的去除重復碼的方法.這里一幀新的數據的接收使能是松開按鍵的時間超過128ms,算法就是這樣的,不過和上面的那個程序相比這個程序沒有上面的那個好,第一個是這個時間如果設置的太短的話,過濾的作用,時間設置的太短,如果這個時間小于兩個重復之間的時間間隔那會就會再次使能中斷的接收,從而把原來的數據覆蓋掉,導致程序的出錯.如果這個時間設置的太長,那個一次按鍵按下去又得等待十年的時間才能再次開啟紅外的接收,是不是很坑爹啊!!!,即使這個時間設置的恰到好處,也還是有一個時間的延遲的,相比上面的那個沒有時間延遲的程序還是有一點瑕疵啊!所以說上面那個程序,也就是我編的那處程序才是最好的算法和程序.

關閉窗口

相關文章

cao在线观看| 香蕉av一区二区三区| 黄色一级片播放| 国产aⅴ精品一区二区三区黄| 国产校园另类小说区| 久久久久久久久久久久久久久久久久| 18videosex性欧美麻豆| 天天干夜夜操| 2018中文字幕在线| 日韩精品一区二区亚洲av| 亚洲av人人澡人人爽人人夜夜| 麻豆视频传媒入口| 成人91免费视频| 欧美成人网在线| 日韩美女主播在线视频一区二区三区 | 国产www在线观看| 中文字幕2022永久在线| 国产免费www| 国产老头老太做爰视频| 日本黄色大片在线观看| 国产高清av在线播放| 久久亚洲高清| 成人羞羞国产免费| 午夜精品一区二区三区在线播放 | 国产精品美女久久久久久2018| 日韩激情在线观看| 国一区二区在线观看| 国内a∨免费播放| 黄色av小说在线观看| www.毛片.com| 欧美三级免费看| 人妻体内射精一区二区| 成年人三级黄色片| 日本三级免费观看| 黄色网zhan| 色姑娘综合网| 国产日韩久久| 51国产成人精品午夜福中文下载| 538国产精品一区二区免费视频| www亚洲精品| 亚洲一区二区福利| 亚洲男子天堂网| 精品国产一区二区三区不卡| 欧美男男青年gay1069videost| 调教+趴+乳夹+国产+精品| 国产精品大尺度| 国产精品久久精品日日| 国产日韩欧美不卡| 久久综合久久综合久久| 99精品视频在线播放观看| 国产精品白丝av| 国产一区二区精品在线观看| 开心九九激情九九欧美日韩精美视频电影 | 黄色片视频在线免费观看| 天天在线免费视频| 99re8这里只有精品| 一区二区在线观| 在线观看日本一区| 天天干天天操天天干天天操| 亚洲永久激情精品| 免费观看黄色大片| 大荫蒂性生交片| 老太脱裤让老头玩ⅹxxxx| 亚洲美免无码中文字幕在线 | 亚洲麻豆视频| 国产亚洲网站| 日韩电影在线观看电影| 日产欧产美韩系列久久99| 日韩成人av影视| 久久99国产精品久久99果冻传媒| 精品在线播放午夜| 成人深夜福利app| www国产成人免费观看视频 深夜成人网| 成人av电影在线网| 久久日韩精品一区二区五区| 欧美激情在线一区二区三区| 亚洲日本va在线观看| 亚洲国产精品久久久久婷婷884| 亚洲在线成人精品| 欧美综合一区二区| 精品国产乱码久久久久久浪潮| 亚洲激情 国产| 中文字幕欧美日韩va免费视频| 精品国产自在精品国产浪潮| 欧美激情伊人电影| 国产免费一区二区三区在线能观看| 91欧美精品午夜性色福利在线| 国产精选一区二区| 欧美性受黑人性爽| www.99在线| 波多野结衣影院| 欧美性x x x| 日韩乱码一区二区三区| 蜜臀久久99精品久久久| 欧美另类videos粗暴黑人| 可以在线观看的黄色网址| 写真福利片hd在线观看| 国内精品在线视频| 毛片在线网站| 嗯用力啊快一点好舒服小柔久久| 欧美午夜精品一区二区三区电影| 最新国产乱人伦偷精品免费网站| 捆绑紧缚一区二区三区视频| 91最新地址在线播放| 亚洲午夜精品一区二区三区他趣| 欧美日韩日日摸| 亚洲性生活视频在线观看| …久久精品99久久香蕉国产| 国产精品免费一区二区三区在线观看 | 九色91在线| 视频一区国产| 国产在线不卡| 成人丝袜18视频在线观看| 亚洲三级视频在线观看| 日韩一区二区免费视频| 欧美精品在线免费观看| 亚洲自拍偷拍色图| japanese在线播放| 日本精品一二三区| 日韩男人的天堂| 日本电影二区| 日韩欧美亚洲一区| 国产社区精品视频| 国产成人三级| 国产一区二区三区国产| 亚洲愉拍自拍另类高清精品| 日韩极品精品视频免费观看| 国产精品国产三级国产aⅴ9色 | 国产精品无码久久av| 美女被草91| 阿v免费在线观看| 亚洲午夜剧场| 一区二区三区国产盗摄| 欧美国产日本视频| 日韩精品一区二区三区中文精品| 午夜精品一区二区三区在线视频 | av毛片在线免费观看| 性欧美高清视频| 在线观看视频污| 久久xxx视频| 欧美片第1页综合| 国产日本一区二区| 欧美一区二区三区在线电影| 国内精品久久影院| 一区二区精品在线观看| av不卡中文字幕| 欧产日产国产69| 国产精品久久久亚洲第一牛牛| 国产尤物视频在线| 国产96在线亚洲| 黄页视频在线91| 欧美亚洲高清一区| 日韩免费av片在线观看| av在线免费观看国产| 精品视频第一页| 九九久久久2| √天堂资源地址在线官网| 精品按摩偷拍| 国内精品视频666| 在线观看av一区| 97精品国产97久久久久久春色| 亚洲欧美久久234| 三级男人添奶爽爽爽视频 | 精品国产1区2区3区| 91在线观看免费高清| 男人的天堂日韩| 久久久精品毛片| 国产日韩在线| 99综合久久| 国产精品自拍av| 欧美大片免费久久精品三p| 91色p视频在线| 久久精品久久99| 精品国产无码一区二区| 污视频网站在线免费观看| 哺乳一区二区三区中文视频 | 午夜国产精品视频| 亚洲乱码日产精品bd| 日韩中文在线中文网在线观看| 日韩欧美视频第二区| 蜜桃av乱码一区二区三区| 中文字幕+乱码+中文字幕| 黄a在线观看| 在线欧美亚洲| 欧美性大战久久久久久久蜜臀| 国产精品自产拍高潮在线观看| 亚洲最大天堂网| www视频在线| 欧美成人视屏| 99香蕉国产精品偷在线观看 | 午夜av区久久| 51色欧美片视频在线观看| 免费日韩视频在线观看| 中文字幕一区二区三区免费看| 在线激情av| 欧美成人激情| 亚洲国产精品久久艾草纯爱 | 色综合天天色| 粉嫩av一区二区三区| 亚洲美女视频网| 欧美日韩一区二区三区电影| 久久久久久久九九九九| 导航艳情国产电影| 久久av中文| 亚洲国产欧美在线| 国产欧美日韩视频| 色婷婷免费视频| 黄色91视频| 久久中文字幕一区二区| 久久久国产午夜精品| 国产综合在线视频| 性生活一级大片| 日韩欧美一区二区三区视频| 日韩高清中文字幕一区二区| 成人免费看黄yyy456| 久久精品久久久久| 午夜精品在线免费观看| 日韩中文字幕综合| 都市激情亚洲综合| 99国产精品国产精品毛片| 久久在精品线影院精品国产| 男人插女人下面免费视频| 亚洲av片在线观看| 台湾佬成人网| 国产亚洲综合性久久久影院| 88xx成人精品| 国产三级视频网站| 1024欧美极品| 伊人久久大香线蕉综合四虎小说| 欧美日本一区二区| eeuss中文| a天堂在线观看视频| 草草在线观看| 99精品黄色片免费大全| 性欧美长视频免费观看不卡| 一边摸一边做爽的视频17国产| 秋霞毛片大全| 日韩欧美在线中字| 欧美精品自拍偷拍动漫精品| 一本色道久久综合亚洲精品婷婷| 在线观看中文字幕2021| 91www在线| 国产清纯美女被跳蛋高潮一区二区久久w | 五月天亚洲精品| 欧美日韩一区二区三区在线视频| 天天干,天天干| 色呦呦视频在线观看| 北条麻妃一区二区三区| 日本久久久久久久| 91ts人妖另类精品系列| 色天堂在线视频| 精品一区二区三区av| 欧美日韩福利视频| 新91视频在线观看| 亚洲视频精品在线观看| 麻豆精品视频在线观看| 国产做受高潮69| av一区二区三区在线观看| 国产盗摄一区二区三区在线| 一级片免费在线| 久久9热精品视频| 97免费在线视频| 激情无码人妻又粗又大| 麻豆app在线观看| 国产精品夜夜嗨| 国产91免费看片| 久久精品国产亚洲av麻豆色欲| av免费在线网站| 国产性做久久久久久| 成人欧美一区二区| 97国产精品久久久| 另类一区二区| 色猫猫国产区一区二在线视频| 久久久久久久免费视频| 在线观看精品自拍视频| 美女精品一区最新中文字幕一区二区三区 | 国产精品久久久久久久久久久久午夜片| 国偷自拍第113页| 日本不良网站在线观看| 一区二区三区在线不卡| 中文字幕中文字幕在线中心一区| 亚洲欧美综合一区二区| 精品国产一级毛片| 亚洲图片欧美午夜| 欧美激情aaa| 日本视频在线观看| 国产精品蜜臀av| 一级日韩一区在线观看| 性xxxx奶大欧美高清| 国产精品毛片久久| 超碰91人人草人人干| wwwav国产| 婷婷综合六月| 欧美色偷偷大香| 亚洲黄色小视频在线观看| 天堂中文字幕——hd| 久久精品国产亚洲aⅴ| 成人疯狂猛交xxx| 亚洲香蕉在线视频| 日韩电影在线观看完整免费观看| 精品伊人久久97| 国产又黄又粗的视频| xxx.xxx欧美| 色婷婷av一区二区三区gif | 亚洲精品午夜视频| 中文字幕有码在线视频| 亚洲国产精品自拍| 欧美 日韩精品| 日本一区二区三区电影| 成人av在线播放网站| 蜜桃臀一区二区三区| 欧美娇小性xxxx| 国产欧美精品久久| 成人黄色中文字幕| 天天摸夜夜添狠狠添婷婷| 久久久久久久久久久9不雅视频| 久久频这里精品99香蕉| 五月天婷婷导航| 四虎5151久久欧美毛片| 精品国产视频在线| 无码人妻久久一区二区三区不卡| 国产女人18毛片水真多18精品| 亚洲色图15p| 国产无遮挡aaa片爽爽| 久久免费福利| 日韩综合中文字幕| 亚洲成人第一网站| free欧美性| 国产美女在线精品| 青青成人在线| av影音资源网| av毛片久久久久**hd| 国产在线无码精品| 在线影视一区| 亚洲一二三四在线| 女人扒开双腿让男人捅| 欧美日韩色网| 日韩亚洲欧美成人一区| 中文字幕资源站| 亚洲精品一二三**| 成人97在线观看视频| 亚洲在线免费观看视频| 一本到12不卡视频在线dvd| 成人情趣片在线观看免费| 欧美色黄视频| 成人精品小蝌蚪| 日本熟妇人妻xxxx| 国产爆初菊在线观看免费视频网站| 精品日本高清在线播放| 欧美精品欧美极品欧美激情| 日韩一级二级| 色天天综合狠狠色| 一级黄色短视频| 国产欧美日韩一级| 欧美在线一区二区三区四区| 二区中文字幕| 亚洲永久精品大片| 中文字幕一区二区三区人妻| 国产精品高清一区二区 | 成年人网站av| 忘忧草在线影院两性视频| 亚洲跨种族黑人xxx| 欧美日韩 一区二区三区| 国色天香一区二区| 美女被啪啪一区二区| 天天操夜夜干| 色婷婷久久综合| 亚洲色偷偷综合亚洲av伊人| 一区二区三区视频免费观看| 国产美女精彩久久| 污污美女网站| 国产精品国产自产拍高清av| 黑人性生活视频| 精品国产伦一区二区三区观看说明| 久久频这里精品99香蕉| 亚洲欧美日韩成人网| eeuss鲁片一区二区三区在线观看| 久章草在线视频| 1234区中文字幕在线观看| 国产亚洲xxx| 神宫寺奈绪一区二区三区| 国产成人自拍网| 一区二区三区入口| 国产一区二区精品调教| 高清一区二区三区日本久| 欧美老头gaygay1069| 国产精品亲子乱子伦xxxx裸| 日本一区二区在线观看视频| 欧州一区二区三区| 国产日本欧美视频| 16—17女人毛片毛片| 欧美在线视频日韩| 黄色在线观看国产| 老司机久久99久久精品播放免费| 日本一本中文字幕| 岛国av在线网站| 亚洲 日韩 国产第一| 日本tube24xxxxx| 五月天激情小说综合| 久久久久亚洲av无码专区|