关于Peripheral_TaskID的taskid下事件的建立event事件
// Setup a delayed profile startup -->每个taskid下最多15个事件
    tmos_set_event(Peripheral_TaskID, SBP_START_DEVICE_EVT);
    
    tmos_start_task(taskID, event, time);

如果这里用自定义的taskid的话,那event的定应该怎么决定,还是自己随意设置不用和代码的事件冲突就行。


例程里面查到的这几个事件里面的evt:

image.png

这里面的evt展开是

image.png


还有就是这里设置的time是在tmos里面运行,和芯片系统的timer冲突吗


您好,EVENT事件的编号是可以“随意”设置的,注意①按位表示事件,可以宏定义成(1 << n位)的形式;②最高位不要用作自定义事件,被TMOS系统默认使用为taskID之间传递信息的事件。

TMOS是基于RTC运行的,和定时器不冲突。注意定时器中断服务函数①快进快出,不要占用太长时间,建议中断服务函数置标志变量,在tmos事件中做具体逻辑处理;②不要直接安排TMOS事件(包括使用tmos_start_task和tmos_set_event等接口函数)。


事件处理另外是不是通过tmosEvents设置处理事件函数,类似下面的ProcessEvent吗

image.png

还有,TMOS系统是板子启动就开启还是蓝牙连接上之后在运行的,需不需要加上在主循环前加上看门狗


安排事件有三个要素taskID、事件处理函数、事件编号,命名都是可以任意命名的,事件处理函数一般命名为xxx_ProcessEvent,可以参考这篇博客添加自拟的任务。

在TMOS系统的main.c中添加事务处理代码 - JayWell - 博客园 (cnblogs.com)

TMOS系统需要在上电后运行,BLE基于TMOS运行,包括广播和连接都跟TMOS系统有关。

看门狗是可以添加的,默认工程里没有启用。看门狗的使用参考博客:CH573 CH582 CH579 看门狗使用 - debugdabiaoge - 博客园 (cnblogs.com)。注意在sleep休眠时,看门狗计数是不保持的,唤醒后清零,相当于sleep休眠就自动喂狗。


不要直接安排TMOS事件啥意思


不要在中断服务函数中直接调用tmos任务,可以通过在中断中置标志,然后tmos查询进行处理对应tmos任务。


只有登录才能回复,可以选择微信账号登录