Page 1 of 1

【已解决】TuyaOS开发低功耗mesh设备,软件定时器不准

Posted: 2023年 Mar 2日 18:22
by Jaoki

现在使用的是TuyaOS开发的一款mesh低功耗设备(TLSR825X芯片平台),发现设备从睡眠状态唤醒的时候,启动的软件定时器不准确,在设备发送重置mesh网络的指令后, 设备定时器时间恢复正常。使用的软件定时器接口为:tal_sw_timer_start。TuyaOS 版本为3.5.0 。


Re: 【求助】TuyaOS开发低功耗mesh设备,软件定时器不准

Posted: 2023年 Mar 2日 19:29
by joey_nobug

如果需要精确的定时器,建议使用硬件定时器,参考 tkl_timer 中的接口。 软定时由于是在 main loop 中循环执行的任务,如果此时有较多的蓝牙终端以及其他业务阻塞运行,则会导致当前周期的定时并不准确


Re: 【求助】TuyaOS开发低功耗mesh设备,软件定时器不准

Posted: 2023年 Mar 2日 19:44
by Jaoki

发现设备收到的网络状态为:[0000000000 TUYA D][app_common.c:376] mesh_state:0 时,这时候从睡眠状态唤醒也是正常的


Re: 【求助】TuyaOS开发低功耗mesh设备,软件定时器不准

Posted: 2023年 Mar 2日 20:14
by joey_nobug

这个状态是未配网状态,设备处于未配网状态相对于已配网状态 mesh 协议栈中相对处理的数据都会少很多。中断较少,以及处理的事件也都会少,此时 main loop 的一个周期是比较短的,所以整体软定时是比较准的。