Topic

FAQ
Login Register
mesh_switch工程中blt_soft_timer_process(MAINLOOP_ENTRY)在main_loop()中被调用的作用
Jun 29, 2023 14:22

/

A

/A

telink support team,

目前正在测试mesh_switch工程(tlsr8258),在此工程中blt_soft_timer_process()中并没有区分是callbackentry还是mainentry., blt_soft_timer_process()函数在soft timer wakeup的时候被执行的,为什么在main_loop()中也调用此函数?在handbook文档中并没有找到原因。  


3 replies
TL_Soyo Jun 30, 2023 09:43
0
/A

你好,
  main loop中为不休眠是周期查询定时任务,时间是否到了,该执行回调,唤醒的回调中执行为了及时判断当前唤醒否当为休眠时定时任务到时了,需要回调定时任务,两者是配合的。


youngbo830 [Author] Jun 30, 2023 10:49
0
/A

你好,

‘“ main loop中为不休眠是周期查询定时任务,时间是否到了,该执行回调,唤醒的回调中执行为了及时判断当前唤醒否当为休眠时定时任务到时了,需要回调定时任务,两者是配合的。”   运行逻辑我是理解的,但是作用不理解。


从mesh _switch工程的代码中可以看出,mesh adv cmd send和key scan都是在soft timer唤醒后的cb中就执行完了,那么当代码运行到blt_soft_timer_process()函数也就没有cb可执行的了,blt_soft_timer_process()函数在这里被调用岂不是起不到作用?  是我没有理解清楚,还是我遗漏了什么情况吗?

TL_Soyo Jun 30, 2023 10:53
0
/A

当一直按着按键或者其他操作导致不休眠时,blt_soft_timer_process()需要轮询才能判断下一个定时任务的回调到。