⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ioport.c

📁 ipod无线遥控接收端,可控制播放,暂停,音量,前进,后退.
💻 C
字号:
#include "hal.h"


BYTE KeyLast=0;
BYTE RfBuf[5];
BYTE cmdn;
const BYTE *Cmd;
BOOL RX_STATE = 0;
BOOL SYN_FIND =0;
BYTE CNT_RETURN =0;

const BYTE Ipod_Cmd[6][8]= {
    {0xff, 0x55, 0x03, 0x02, 0x00,0x01, 0xfa,0xff},     // play
    {0xff, 0x55, 0x03, 0x02, 0x00,0x02, 0xf9,0xff},     // vol up
    {0xff, 0x55, 0x03, 0x02, 0x00,0x04, 0xf7,0xff},     // vol down
    {0xff, 0x55, 0x03, 0x02, 0x00,0x08, 0xf3,0xff},     // fwd
    {0xff, 0x55, 0x03, 0x02, 0x00,0x10, 0xeb,0xff},     // rev
    {0xff, 0x55, 0x03, 0x02, 0x00,0x00, 0xfb,0xff}      // end
};
const BYTE Ipod_Cmd_N[6] = {7,7,7,8,8,8};

void IpodSend(BYTE kpr)
{
    Cmd = Ipod_Cmd[kpr];
    cmdn = Ipod_Cmd_N[kpr];
    UDR0 = *Cmd; 
}

#pragma vector=PCINT0_vect 
__interrupt void pcint0_isr(void)
{
    BYTE status[2];
    BYTE temp;
    
    PCINT0_DISABLE();
    if(RX_STATE){
        if(SYN_FIND){
          if(!GDO2READ){
            if ((SpiReadStatus(CCxxx0_RXBYTES) & BYTES_IN_RXFIFO)) {
              SpiReadBurstReg(CCxxx0_RXFIFO, RfBuf, 2); 
              SpiReadBurstReg(CCxxx0_RXFIFO, status, 2); 
              if(status[LQI] & CRC_OK){
                  temp=RfBuf[0];
                  if(temp == ~RfBuf[1]){
                        if(KeyLast != temp){
                            SET_LED;
                            CNT_RETURN = 0;
                            IpodSend(temp);
                            KeyLast = temp;
                            Pause_1mS(1); 
                            CLR_LED;
                        }
                  }
              }
              SpiStrobe(CCxxx0_SIDLE);
              RX_STATE=0; 
              SYN_FIND=0;
            }
          }
        }else{  
            SYN_FIND = GDO2READ;
        }
    }
    PCINT0_ENABLE();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -