2013年5月22日 星期三

Receive IR with CCP1


這個練習程式的應用很廣, 我覺得不太好用, 在高速CPU下, 會一直中斷, 有需要的人就參考參考囉

if (PIR1bits.RCIF==1)
  {
          if(PIR1bits.CCP1IF)
     {
                PIE1bits.TMR1IE=1;
  PIR1bits.CCP1IF=0;

  if(ClearTimer1==0)
   {
   TMR1L=0;
   TMR1H=0;
   ClearTimer1=1;
   }
  else
   {
   IR_Time=CCPR1H*256+CCPR1L;
   TMR1L=0;
   TMR1H=0;
   if(IR_BitNumber==0 && (IR_Time>30000 && IR_Time<36000))
    {
    IR_Start=1;
    IR_Code[IR_BitNumber++]=IR_Time;
    }
   else if(IR_Start==1 && (IR_Time>2000 && IR_Time<6000))
    {
    if(IR_BitNumber>=32)
     {
     IR_RecordSuccess=1;
     IR_Start=0;
     PIE1bits.TMR1IE=0;
     }
    else
     IR_Code[IR_BitNumber++]=IR_Time;
    }
   else
    {
    IR_Start=0;
    IR_BitNumber=0;
    }
   }
  }   // end of PIR1bits.CCP1IF
 }

沒有留言:

張貼留言

歡迎大家來討論交流一下~~~