#1楼主:遇到问题了 向大家请教!~
文章发表于:2008-10-14 05:05
大家好,学习的时候遇到一个问题,请大家帮忙!
我用的是无线龙c51pk系列开发板,04精简版协议栈,我要做一个子函数,
功能:在rfd是一个等待接受信号的状态,这个状态可以自己定义它的等待时间
就是说在这个状态中,一直在等待信号的到来,信号到来后执行ACTION1(),
如果杂这个状态结束后信号还没接收到或者信号丢失了,同样执行ACTION1(),
自己觉得很简单,可是怎么做也达不大效果 还请大家帮忙写一个相关的函数!谢谢!
下面是我自己写的,请大家帮忙修改一下:
typedef enum _WAIT_STATE_ENUM{
WAIT_STATE_IDLE,
WAIT_STATE_CHECK_RX,
WAIT_STATE_TIMEOUT
}WAIT_STATE_ENMU;
WAIT_STATE_ENUM waitstate;
void checkrx(void)
{
apsFSM();
switch(waitstate)
{
case WAIT_STATE_IDLE:
static UINT32 count=5000; //检测5000次 大概状态持续0.5秒
waitstate=WAIT_STATE_CHECK_RX;
break;
case WAIT_STATE_CHECK_RX:
while(count--)
{
if((INT8U)*aplGetRxMsgData()==0x01) //若收到信号0x01
{
ACTION1(); //执行程序
count=0;
waitstate=WAIT_STATE_IDLE;
}
else
{
waitstate=WAIT_STATE_TIMEOUT;
}
}
break;
case WAIT_STATE_TIMEOUT:
ACTION();
waitstate=WAIT_STATE_IDLE;
break;
}
}