关于CC2530开发板 非自启动模式设置的问题
时间:10-02
整理:3721RD
点击:
协议栈版本 ZStack-CC2530-2.3.0-1.4.0, IAR版本 8.10 仿真器版本 smartRF04EB
问题 描述:
在TI提供的例程中,使用了ZStack-CC2530-2.3.0-1.4.0\Projects\zstack\Samples\SimpleApp,编译中采用collector(采集节点),在程序中,打算采用按键中断的方法启动网络,在defined symbols中定义了HOLD_AUTO_START, 以及xNV_RESTOR在onbord.c中:设置采用中断方式
void InitBoard( uint8 level ) { /* Initialize Key stuff */ OnboardKeyIntEnable = HAL_KEY_INTERRUPT_ENABLE;// HalKeyConfig( OnboardKeyIntEnable, OnBoard_KeyCallback); } }
开发板不是TI官方的板子,但是查看原理图发现两个接键分别定义在了p0_1与P2_0,跟官方的HAL_KEY_SW_6、HAL_KEY_JOY_MOVE两个定义的引脚一样,设置时,采用p0_1的中断启动网络。
因此设想,在第一次下载程序并运行的时候,如果没有按键按下,也没有设置自启动,那么在函数UINT16 SAPI_ProcessEvent( byte task_id, UINT16 events )中的startOptions的值将为0,不会启动网络;
define symbols中定义如下:
HOLD_AUTO_START BUILD_ALL_DEVICES REFLECTOR NV_INIT xNV_RESTORE ZTOOL_P1 xMT_TASK xMT_SYS_FUNC LCD_SUPPORTED=DEBUG xMT_SAPI_FUNC xMT_SAPI_CB_FUNC
但是在下载程序并运行后发现,在第一次运行的时候,startOptions的值就为0x04;下图为watch载图 这是为什么?
同样的,我将协调器设置为controller(控制节点)时,如果没有按键按下,如设想一下,不会启动网络,直到按键按下watch载图如下图所示:
在TI给的例程中,协调器作为controller与collector有什么区别么? 如果有,我该怎么样设置按键启动网络?
如果没有,那我的程序哪里设置有问题?
请TI的员工帮我看一下 谢谢~
这个协议栈已经非常老的版本了,建议下载一个较新的协议扎版本Z-Stack Mesh 1.0.0
你可以把HOLD_AUTO_Start加上,然后通过按键调用 ZDOInitDevice(0);