亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 誠信求教,avr單片機(jī)紅外遙控長按鍵的問題 [打印本頁]

作者: rjx007    時(shí)間: 2019-3-31 10:24
標(biāo)題: 誠信求教,avr單片機(jī)紅外遙控長按鍵的問題
用的是ATMEGA8a,單次按鍵沒有問題,但自己搞了幾天處理連發(fā)碼都沒搞出來,誠信請教如何判斷是連發(fā)碼?

  1. uchar IR_buf[4]={0x00,0x00,0x00,0x00};  //IR_buf[0]、IR_buf[1]為用戶碼低位、用戶碼高位接收緩沖區(qū)
  2.                                                               // IR_buf[2]、IR_buf[3]為鍵數(shù)據(jù)碼和鍵數(shù)據(jù)碼反碼接收緩沖區(qū)

  3. /********us延時(shí)程序,延時(shí)時(shí)間0.14ms(140us*)*******/
  4. void Delayus(uint x)
  5. {
  6.          char i, j;
  7.         for(i=0;i<x;i++)
  8.       {for(j=0;j<210;j++);}
  9. }

  10. interrupt [EXT_INT0] void ext_int0_isr(void)
  11. {
  12.    uchar i,j,sum=0;  
  13.    GICR |=(0<<INT0);
  14.    Delayus(20);                                //延時(shí)20*0.14MS  ,2.8MS
  15.    for(i = 0;i < 14;i++)
  16.       {
  17.          Delayus(1);
  18.          if(IRIN)                            //9MS內(nèi)有高電平,則判斷為干擾,退出處理程序
  19.          {
  20.            GICR |=(1<<INT0);
  21.                   return;                                    //返回
  22.          }
  23.       }

  24.    while(!(IRIN));                          //等待9ms低電平過去

  25.    for(i=0;i<4;i++)           
  26.     {
  27.       for(j=0;j<8;j++)         
  28.       {
  29.          while(IRIN);                         //等待4.5ms高電平過去
  30.          while(!(IRIN));                 //等待變高電平
  31.          while(IRIN)                          //計(jì)算高電平時(shí)間
  32.           {
  33.              Delayus(1);                        //延時(shí)0.14ms
  34.              sum++;                                    //對0.14ms延時(shí)時(shí)間進(jìn)行計(jì)數(shù)
  35.              if(sum >= 30)              //高電平時(shí)間過長,則退出處理程序
  36.              {
  37.                GICR |=(1<<INT0);
  38.                return;
  39.              }   
  40.           }

  41.        IR_buf[i] = IR_buf[i] >> 1;      //接受一位數(shù)據(jù)

  42.        if(sum >= 6)
  43.           {IR_buf[i] = IR_buf[i] | 0x80;}   //若計(jì)數(shù)值大于6(高電平時(shí)間大于0.56),則為數(shù)據(jù)1

  44.        sum = 0;                  //若計(jì)數(shù)小于6,數(shù)據(jù)最高位補(bǔ)"0",說明收到的是"0",同時(shí)計(jì)時(shí)清零
  45.      }
  46.    }
  47.   if(IR_buf[2]!=~IR_buf[3])                //將鍵數(shù)據(jù)反碼取反后與鍵數(shù)據(jù)碼碼比較,若不等,表示接收數(shù)據(jù)錯(cuò)誤,放棄
  48.     { GICR |=(1<<INT0);    return;}      
  49.             
  50.   HW_Status=1;
  51. }  

  52. void RR()    //遙控器鍵控
  53. {
  54.         if(HW_Status==1)
  55.      {   static uchar m;
  56.                  if((IR_buf[2]==0xfb)||(IR_buf[2]==e))              //音量加
  57.                         {
  58.                                 if( VOLUME_1<98)
  59.                                         {++ VOLUME_1;}
  60.                                 else if( VOLUME_1>=98)
  61.                                         { VOLUME_1=98;}                           
  62.                         }
  63.                 if((IR_buf[2]==0xfa)||(IR_buf[2]==b))        //音量減
  64.                         {
  65.                                 if( VOLUME_1>0)
  66.                                         {-- VOLUME_1;}                          
  67.                         
  68.                         }
  69. void RR()    //遙控器鍵控處理
  70. {
  71.         if(HW_Status==1)
  72.      {   static uchar m;
  73.                  if((IR_buf[2]==0xfb)||(IR_buf[2]==e))              //音量加
  74.                         {
  75.                                 if( VOLUME_1<98)
  76.                                         {++ VOLUME_1;}
  77.                                 else if( VOLUME_1>=98)
  78.                                         { VOLUME_1=98;}                           
  79.                         }
  80.                 if((IR_buf[2]==0xfa)||(IR_buf[2]==b))                                        //音量減
  81.                         {
  82.                                 if( VOLUME_1>0)
  83.                                         {-- VOLUME_1;}                          
  84.                         
  85.                         }
  86. }
復(fù)制代碼



作者: devcang    時(shí)間: 2019-3-31 23:45
引導(dǎo)信號、低電平、重復(fù)記號,,,,,這判斷


~~~~~~~~~~~~~~~~~~~~~~~~
作者: rjx007    時(shí)間: 2019-4-4 19:05
繼續(xù)求解
作者: liuzx66    時(shí)間: 2019-4-4 21:12
不同的編碼芯片有不同的編碼方式,先看你所用的編碼芯片是什么,再找數(shù)據(jù)手冊看




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