首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

运行时出现的一个问题

运行时出现的一个问题

当我写了以下程序,编译通过,在运行后fficeffice" />


UseMcuClock();


                            MLMEHibernateRequest(); //MC13192 now consuming 3 uA


                            MCUDelay (WALKON);


                            MLMEWakeRequest();


                            UseExternalClock();


                            MLMERXEnableRequest(&rx_packet, 0x);


发现在while (gu8RTxMode != IDLE_MODE_ATTN)


    {


        MCU_LOW_POWER_WHILE();       /* Wait until ATTN */


这两句之间出现死循环,不知道是什么原因?

MCU_LOW_POWER_WHILE(); 是进入wait模式,等待唤醒
要把你整个情况说明白,另外,要先运行smac的示例程序,在此基础上再做修改
先在freescale提供的硬件平台上运行,排除硬件的问题
while (gu8RTxMode != IDLE_MODE_ATTN)



{



MCU_LOW_POWER_WHILE(); /* Wait until ATTN */

它是程序在执行MLMEWakeRequest();后
自动调用simple_phy.c后出现的语句,程序到这一块就是走不过去了,按道理说执行MLMEWakeRequest();应该很顺畅才对啊...
我单步调了一下,发现gu8RTxMode==135所以走不过去,我把IDLE_MODE_ATTN用135代替走过去了,但循环第二次到这儿时gu8RTxMode==132,又过不去了
于是我直接在simple_phy.c中将
while (gu8RTxMode != IDLE_MODE_ATTN)
{
MCU_LOW_POWER_WHILE(); /* Wait until ATTN */
}
这一语句删了,不知道会不会影响原函数的功能呢???
想想就调用了一个函数,
MLMEWakeRequest();



没想到会出现问题,难道调用它时要先预处理一些东西吗?
先给你出你用的什么程序。
先看MCU数据手册了解基本信息
返回列表