CC2541 添加自定义任务
各位大神好!
我在 CC2541 SimpleBLEPeripheral 这个例程里面多添加2个任务。在添加第1个的时候,一切工作正常,taskid = 12;
但是安装第一个自定义任务的添加办法,添加第2个任务后,编译运行,例程就工作不对了,蓝牙也发布出来。
这个添加自定义任务有限制嘛,看程序没有限制的呀!
好急!
taskid序号取值有讲究的。
代码贴出来看看,另,taskid要连续。
感谢您的回复!
taskid我是连续写的。
代码如下:
void osalInitTasks( void )
{
uint8 taskID = 0;
。。。。。。
/* Application */
SimpleBLEPeripheral_Init( taskID++ );
HwI2C_Init(taskID++);
Ble_Init(taskID);
}
const pTaskEventHandlerFn tasksArr[] =
{
LL_ProcessEvent, // task 0
Hal_ProcessEvent, // task 1
HCI_ProcessEvent, // task 2
#if defined ( OSAL_CBTIMER_NUM_TASKS )
OSAL_CBTIMER_PROCESS_EVENT( osal_CbTimerProcessEvent ), // task 3
#endif
L2CAP_ProcessEvent, // task 4
GAP_ProcessEvent, // task 5
SM_ProcessEvent, // task 6
GATT_ProcessEvent, // task 7
GAPRole_ProcessEvent, // task 8
GAPBondMgr_ProcessEvent, // task 9
GATTServApp_ProcessEvent, // task 10
SimpleBLEPeripheral_ProcessEvent, // task 11
HwI2C_ProcessEvent, // task 12
Ble_ProcessEvent // task 13
};
上边 task12和task13是我自己自定义的任务。添加12时,很顺利,工作也正常。添加了13后,程序就不正常了。
void Ble_Init( uint8 task_id )
{
ble_initVarible();
Ble_TaskID = task_id;
//SerialPrintValue("\n\rBle_Init taskid !",Ble_TaskID,10);
osal_set_event( Ble_TaskID, BLE_Event_1);
}
BLE_Event_1 = 0x00000001;
测试发现osal_set_event( Ble_TaskID, BLE_Event_1);这要这句打开,程序就不正常了,关闭了就正常。
还望大神神助呀
问题找到,osal_set_event( );调用的时候,需要把头文件也加进去,添加osal.h的头文件就可以了。