TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2541 添加自定义任务

各位大神好!

我在 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);这要这句打开,程序就不正常了,关闭了就正常。

还望大神神助呀

赞(0)
未经允许不得转载:TI中文支持网 » CC2541 添加自定义任务
分享到: 更多 (0)