我的片子是cc2530f256,现在遇到一个问题,请ti的工程师帮帮忙
我在桥端发了一个开灯的命令,也就是COMMAND_ON,灯端收到命令后,会调用zllSampleLight_OnOffCB这个函数
我的问题是,为什么在这边函数中,条件满足后却不执行,我在线debug,这个地方也不能打断点,而是直接跑到下面的taggle的部分去了
后来我又试了下关灯的命令,结果是一样的,也是直接跑到下面的taggle部分去了,我不能理解,为什么条件满足却不能执行
static void zllSampleLight_OnOffCB( uint8 cmd )
{
// Turn on the light
if ( cmd == COMMAND_ON ) //当收到COMMAND_ON时为什么条件满足却不执行
{
zllSampleLight_OnOff = LIGHT_ON; //此处为什么不能打断点
zllSampleLight_GlobalSceneCtrl = TRUE;
if ( zllSampleLight_OnTime == 0 )
{
zllSampleLight_OffWaitTime = 0;
}
}
// Turn off the light
else if ( cmd == COMMAND_OFF )//当收到COMMAND_OFF命令时,这边满足条件却不执行
{
zllSampleLight_OnOff = LIGHT_OFF;//此处为什么不能打断点
//zllSampleLight_GlobalSceneCtrl = FALSE; //see ZLL spec 11-0037-03 6.6.1.2.1
zllSampleLight_OnTime = 0;
}
// Toggle the light
else
{
if ( zllSampleLight_OnOff == LIGHT_OFF ) //当收到COMMAND_ON时,跑到这里,
{
zllSampleLight_OnOff = LIGHT_ON; //这边都可以打断点
zllSampleLight_GlobalSceneCtrl = TRUE;
if ( zllSampleLight_OnTime == 0 )
{
zllSampleLight_OffWaitTime = 0;
}
}
else
{
zllSampleLight_OnOff = LIGHT_OFF;//当收到COMMAND_OFF命令时,执行这里
zllSampleLight_OnTime = 0;
}
}
hwLight_UpdateOnOff( zllSampleLight_OnOff );
zllSampleLight_SceneValid = 0;
}
不知道我的意思描述的清楚不?希望能看懂,并且尽快给我答复,谢谢了!
Ann Shen:
有没有人来帮我解答一下啊?
VV:
首先你发送的on/off命令,灯有没有正常的相应。
没办法断点,可能是IAR优化代码的缘故。
你也可以通过空中抓包把这个过程看下。
Ann Shen:
回复 VV:
首先很感谢vv帮我解答问题,我发送的on/off命令,灯是可以正常的响应的 其次,我不知道为什么这边会被优化,这边应该是很正常的条件语句啊 我是在读灯的开关属性的时候,发现这边的问题的
Ann Shen:
回复 VV:
VV
首先你发送的on/off命令,灯有没有正常的相应。
没办法断点,可能是IAR优化代码的缘故。
你也可以通过空中抓包把这个过程看下。