我用CC1100进行无线数据传输,要求传输的距离是200米,延时在100ms左右,我用的波特率是9.6K,但是MCU每次调用CC1100的发送函数后,都会人为地加上一个比较大的延时(65ms),导致延时达不到要求。我的主程序里面,每次调用完这个CC1100的发送函数后,都要人为地加一个延时,如下:
{
halRfSendPacket(&pTX.FrameType, 63); //CC1100发送数据的函数
delay_ms(SEND_PACK_TIME);/*这个延时必不可少,当速率低至9.6k时,这个延时应达到接近100ms*/
}
我想问一下,这个延时是什么作用呢?我把它去掉,或者改小都不行,现在是延时65ms,怎么样才能把这个延时降下来呢?
我的发送函数是这样的:
//功能描述:CC1100发送主叫数据
//*****************************************************************************************
void halRfSendPacket(INT8U *txBuffer, INT8U size)
{
///////////////////////////////////////////////
INT16U wait_time;
do{
while(Check_Chanel_State()==CHANEL_BUZY)
{
delay_us(50);
}
}while(Check_Chanel_State()==CHANEL_BUZY);
//////////////////////////////////////////////
halSpiStrobe(CCxxx0_SIDLE);
halSpiStrobe(CCxxx0_SFTX);
halSpiWriteBurstReg(CCxxx0_TXFIFO, txBuffer, size); /* 写入要发送的数据*/
delay_ms(1);
halSpiStrobe(CCxxx0_STX); /* 进入发送模式发送数据*/
// Wait for GDO0 to be set - > sync transmitted
while (!GDO0);
while (GDO0);
}
老板催得紧,在这里卡了好多天了,麻烦你了,谢谢啊! |