?? ioport.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 + -