while (gu8RTxMode != IDLE_MODE)[/color ]{
MCU_LOW_POWER_WHILE();
}
return SUCCESS;
}
else
{
return RX_ON;
}
}
请问gu8RTXMODE在什么条件下跳出?是自动的吗?这个问题会是数据没发完造成的吗?
[此贴子已经被作者于2007-5-28 18:13:18编辑过]
作者: knightccc 时间: 2007-5-29 17:39
我的程序似乎一直停在这里。请问大虾说的,如果数据没被接收的话,是否一直循环等待?
while (gu8RTxMode != IDLE_MODE0){
MCU_LOW_POWER_WHILE();
}
作者: seuafu2005 时间: 2007-5-30 21:12
收发器应该是这样工作的,收发之间不能直接转换,都是经过idle这个状态。收完就idle,发完也是idle。循环等待的话就是MCU没有接收到idle的信号。不知道你用的是那个smac的例子程序,在哪个平台上面?
如果freescale提供的程序没有改动过的话,在fsl对应的平台上运行应该没有任何问题的。
作者: knightccc 时间: 2007-5-31 00:43
我的平台13213-SRB,可是由于FSL的smac4.1c的例程有限制不能编译通过,所以自己在编写程序。用的是wireless uart 程序修改的,工程已发给版主了。麻烦版主帮助看下
作者: 小兔子岚 时间: 2007-5-31 16:18
在drivers.c这个文件中,有一个 interrupt void IRQIsr(void) 中断函数,这个函数处理很多事情,比如发送结束、接收结束的时候,射频模块都会给MCU中断信号,然后进入这个函数。
这个函数里有这么一段代码,正是这段代码,使得射频模块发送完成后,将 gu8RTxMode 改回了 IDLE_MODE.
if ((gu8RTxMode == IDLE_MODE) || ((u16StatusContent & CCA_IRQ_MASK) != 0) || \
((u16StatusContent & TX_IRQ_MASK) != 0))
{
// 发送完毕后,就会满足 (u16StatusContent & TX_IRQ_MASK) != 0 这个条件
/* If in idle mode already or if CCA or TX is done, just return. */
RTXENDeAssert(); /* Forces the MC13192 to idle. */
/* Check for Pulse TX Mode for PRBS9 Test mode sequence */
if (gu8RTxMode == PULSE_TX_MODE)
{
u16StatusContent = (SPIDrvRead(MODE_ADDR) & 0xFF7F); /* Read the MC13192 trx register. Timer trigger off. */
SPIDrvWrite(MODE_ADDR, u16StatusContent); /* Re-write the trx register. */
RTXENAssert(); /* Re-start the sequence. */
#if defined (PA)
MC13192_PA_CTRL = PA_OFF; //Turn off the PA when TX is complete
#endif
return;
}
gu8RTxMode = IDLE_MODE; // 在这里,gu8RTxMode 被恢复成了 IDLE_MODE
return;
}
你发送数据进行调试的时候,看看程序有没有进到中断里呢?如果没有进入中断,那可能是MCU的中断设置有问题——比如是否允许了中断?中断向量表是否设置正确?(中断向量表在 vectortable.c 这个文件里) [此贴子已经被作者于2007-5-31 16:15:31编辑过]
[此贴子已经被作者于2007-5-31 16:18:27编辑过]
作者: knightccc 时间: 2007-6-1 20:07
while (gu8RTxMode != IDLE_MODE)时,跳转到一块
FFF8 STX ,X
FFF9 STX ,X
FFFA STX ,X
FFFB STX ,X
FFFC STX ,X
FFFD STX ,X
FFFE BEST 4,0xA7
我的程序到这里好像跳到这里,就一直死循环了。
大虾,怎么看有没进入中断?中断这块不怎么清楚,请指点下?
vectortable.c也没有加进去而且中断向量我不太明白,请问我应该如何对MCU进行中断设置。
[此贴子已经被作者于2007-6-1 20:07:58编辑过]
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |