📄 deal.c
字号:
//--------------------------------------------------------
//--------------------------------------------------------
void FlashLed(void)
{
++Timer300msCount;
if(Timer300msCount>=80)
{
Timer300msCount=0;
bSignal2Hz = ~bSignal2Hz;
if(bSignal2Hz==0)
{
if(Led2FlashTimes>0)
{
_TurnOnLed2;
--Led2FlashTimes;
}
}
else
{
_TurnOffLed2;
}
}
}
//--------------------------------------------------------
//--------------------------------------------------------
void Ex0Deal(void)
{
unsigned char i;
bBusy = dTrue;
nrfTxBuf[0] = dRegister_Status;
nrfTxBuf[1] = 0x00; // 使能接收通道0
SPI_SendData(nrfTxBuf, &nrfTxBuf[0], 2);
//
ComTxCount=1;
PtComTx=&nrfTxBuf[0];
UDR=dRegister_Status;
while(ComTxCount>0) WDR();
//
if((nrfTxBuf[1] & (1<<bRX_DR))==(1<<bRX_DR))
{//接受数据中断
Led2FlashTimes=6;
i=EEPROMread(UserConfigAddress+dRegister_RX_PWP0);
nrfTxBuf[0] = dCom_ReadData;
SPI_SendData(nrfTxBuf, &nrfRxBuf[0], 33);
ComTxCount=31;
PtComTx=&nrfRxBuf[1];
UDR=*PtComTx++;
while(ComTxCount>0) WDR();
}
if((nrfTxBuf[1] & (1<<bTX_DS))==(1<<bTX_DS))
{//数据发送中断
Led2FlashTimes=4;
}
if((nrfTxBuf[1] & (1<<bMAX_RT))==(1<<bMAX_RT))
{
Led2FlashTimes=2;
}
if((nrfTxBuf[1] & (1<<bTX_Full))==(1<<bTX_Full))
{
Led2FlashTimes=1;
}
nrfTxBuf[0] = dRegister_Status+dCom_Write;
nrfTxBuf[1] = 0x70;
SPI_SendData(nrfTxBuf, &nrfTxBuf[0], 2);
bBusy = dFalse;
}
//--------------------------------------------------------
//--------------------------------------------------------
void ComDeal(void)
{
uchar i;
bBusy = dTrue;
for(i=0;i<ComRxCount;i++)
{
nrfTxDataBuf[i]=ComRxBuf[i];
}
ComRxCount=0;
bCom2Spi = dFalse;
if(nrfTxDataBuf[0]<0x20)
{//读寄存器内容
if(i==1)
{
if((nrfTxDataBuf[0]==0x0a)||(nrfTxDataBuf[0]==0x0b)||(nrfTxDataBuf[0]==0x10))
i=6;
else i=2;
SPI_SendData(nrfTxDataBuf, ComTxBuf, i);
ComTxCount=i-1;
PtComTx = &ComTxBuf[1];
UDR=nrfTxDataBuf[0];
while(ComTxCount>0) WDR();
}
else
{
bBusy = dFalse;
return;
}
}
else if(nrfTxDataBuf[0]<0x40)
{//写寄存器内容
if((nrfTxDataBuf[0]==0x2a)&&(i==6))
{//写RxPipe0地址
EEPROMwrite(RxPipe0Addr+0,nrfTxDataBuf[1]);WDR();
EEPROMwrite(RxPipe0Addr+1,nrfTxDataBuf[2]);WDR();
EEPROMwrite(RxPipe0Addr+2,nrfTxDataBuf[3]);WDR();
EEPROMwrite(RxPipe0Addr+3,nrfTxDataBuf[4]);WDR();
EEPROMwrite(RxPipe0Addr+4,nrfTxDataBuf[5]);WDR();
i=6;
}
else if((nrfTxDataBuf[0]==0x2b)&&(i==6))
{//写RxPipe1地址
EEPROMwrite(RxPipe1Addr+0,nrfTxDataBuf[1]);WDR();
EEPROMwrite(RxPipe1Addr+1,nrfTxDataBuf[2]);WDR();
EEPROMwrite(RxPipe1Addr+2,nrfTxDataBuf[3]);WDR();
EEPROMwrite(RxPipe1Addr+3,nrfTxDataBuf[4]);WDR();
EEPROMwrite(RxPipe1Addr+4,nrfTxDataBuf[5]);WDR();
i=6;
}
else if((nrfTxBuf[0]==0x30)&&(i==6))
{//写TxPipe地址
EEPROMwrite(TxPipeAddr+0,nrfTxDataBuf[1]);WDR();
EEPROMwrite(TxPipeAddr+1,nrfTxDataBuf[2]);WDR();
EEPROMwrite(TxPipeAddr+2,nrfTxDataBuf[3]);WDR();
EEPROMwrite(TxPipeAddr+3,nrfTxDataBuf[4]);WDR();
EEPROMwrite(TxPipeAddr+4,nrfTxDataBuf[5]);WDR();
i=6;
}
else if(i == 2)
{
EEPROMwrite(UserConfigAddress+nrfTxBuf[0]-0x20,nrfTxDataBuf[1]);WDR();
}
else
{
bBusy = dFalse;
return;
}
SPI_SendData(nrfTxDataBuf, ComTxBuf, i);
ComTxCount=i-1;
PtComTx = &ComTxBuf[1];
UDR=nrfTxDataBuf[0];
while(ComTxCount>0) WDR();
}
else if((nrfTxDataBuf[0] == dCom_ReadData)&&(i=1))
{
SPI_SendData(nrfTxDataBuf, &nrfRxBuf[0], 33);
ComTxCount=31;
PtComTx=&nrfRxBuf[0];
UDR=*PtComTx++;
while(ComTxCount>0) WDR();
}
else if((nrfTxDataBuf[0] == dCom_WriteData)&&(i>1))
{
nRF_SendData(i);
}
else if((i==1)
&&((nrfTxDataBuf[0] == dCom_ClrTxFIFO)
||(nrfTxDataBuf[0] == dCom_ClrRxFIFO)
||(nrfTxDataBuf[0] == dCom_RESUT_TX_PL)))
{
SPI_SendData(nrfTxDataBuf, ComTxBuf, 1);
ComTxCount=0;
UDR=nrfTxDataBuf[0];
while(ComTxCount>0) WDR();
}
bBusy = dFalse;
}
//--------------------------------------------------------
//--------------------------------------------------------
//--------------------------------------------------------
//--------------------------------------------------------
//--------------------------------------------------------
//--------------------------------------------------------
//--------------------------------------------------------
//--------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -