各位大神好!
我在 CC2541 SimpleBLEPeripheral 这个例程里面多添加2个任务。在添加第1个的时候,一切工作正常,taskid = 12;
但是安装第一个自定义任务的添加办法,添加第2个任务后,编译运行,例程就工作不对了,蓝牙也发布出来。
这个添加自定义任务有限制嘛,看程序没有限制的呀!!
好急!!
da qin zheng sheng:
taskid序号取值有讲究的。
Yue TANG:
代码贴出来看看,另,taskid要连续。
yixiao dugu:
回复 Yue TANG:
感谢您的回复!
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);这要这句打开,程序就不正常了,关闭了就正常。
还望大神神助呀