|
我用的是cc2430片上系统,双向通讯时用查询法接收数据,用外部中断发送数据出去,通讯成功但是有延时可能0.3秒左右。如果单向通讯,即一个点只发送、或接收,用的方法也是查询法接收,外部中断发送,那么通讯看不出有延时。请问大家这是不是正常的?是什么原因我的程程序应该怎样才比较好一点?下面是其中一个点的处理程序:
void receiveMode(void)//B
{
BYTE sendBuffer1[] = {0x11};
BYTE* receiveBuffer;
BYTE length;
BYTE sender;
Init_IO_AND_LED();
EINT1=0;
while(1)
{
while(EINT1)//这里是发送数据出去
{
radioSend(sendBuffer1, sizeof(sendBuffer1), remoteAddr, DO_NOT_ACK );
EINT1=0;
}
while(EINT1==0)//空闲时不断检测是否收到数据
{
radioReceive(&receiveBuffer, &length, RECEIVE_TIMEOUT, &sender);
if(*receiveBuffer == 0x01)//收到的数据是0x01
{
if(i==0)
{
GLED = LED_ON;
halWait(200);
}
if(i==255)
{
GLED = LED_OFF;
halWait(200);
}
i=~i;
}
if(*receiveBuffer == 0x02)
{
if(j==0)
{
YLED = LED_ON;
halWait(200);
}
if(j==255)
{
YLED = LED_OFF;
halWait(200);
}
j=~j;
}
*receiveBuffer = 0x00;
}
}
}
#pragma vector = P0INT_VECTOR
__interrupt void P0_ISR(void)
{
if(P0IFG>0) //按键中断
{
P0IFG = 0;
EINT1=1;
}
P0IF = 0; //清中断标志
} |
|