Topic

FAQ
Login Register
sig mesh sdk 的软件定时器为何不能在休眠下定时唤醒?
Feb 25, 2022 10:29

/

A

/A

大家好,在开发sig mesh sdk时,使用软件定时器即blt_soft_timer_add(&soft_timer_test0, 2*1000*1000),在不休眠时,可以定时进去timer_test0,但使用了app_cpu_sleep_wakeup(SUSPEND_MODE, PM_WAKEUP_TIMER|PM_WAKEUP_PAD, 32*1000*60*30);这个函数进去休眠后,软件定时器并没有按照2s钟醒来,这是为何呢,文档说可以提前唤醒的,大家若知道,麻烦指导一下,谢谢了



haiou [Author] Feb 25, 2022 13:48
0
/A

感谢hk.wang的回答,我使用了cpu_sleep_wakeup(SUSPEND_MODE, PM_WAKEUP_TIMER,clock_time()+30*1000*CLOCK_16M_SYS_TIMER_CLK_1MS);这个函数,无法休眠,注意我上面描述的是函数是app_cpu_sleep_wakeup(SUSPEND_MODE, PM_WAKEUP_TIMER|PM_WAKEUP_PAD, 32*1000*60*30);它们的参数单位不一样,希望再次得到您的回复,谢谢

7 replies
TL_hk Feb 25, 2022 11:45
0
/A





haiou [Author] Feb 25, 2022 13:48
0
/A

感谢hk.wang的回答,我使用了cpu_sleep_wakeup(SUSPEND_MODE, PM_WAKEUP_TIMER,clock_time()+30*1000*CLOCK_16M_SYS_TIMER_CLK_1MS);这个函数,无法休眠,注意我上面描述的是函数是app_cpu_sleep_wakeup(SUSPEND_MODE, PM_WAKEUP_TIMER|PM_WAKEUP_PAD, 32*1000*60*30);它们的参数单位不一样,希望再次得到您的回复,谢谢

haiou [Author] Feb 25, 2022 14:51
0
/A

再次感谢hk.wang的回答,针对第一个问题:我用的是sig mesh sdk ,这个函数没有找到的化也可以用cpu_long_sleep_wakeup();这个函数,它们都是一样的,

针对第二个问题:

如果不调用底层休眠函数,那我想要休眠后定时唤醒(休眠后,2s唤醒,1小时唤醒等),该如何做到,再次期待您的回复,谢谢


haiou [Author] Feb 25, 2022 17:51
0
/A


再次感谢hk.wang, 1.我已经明白了,

2.对于第二点还是有点疑惑,意思是用sofetimer添加的定时任务是不能进去休眠对吧,如果我强制使用底层休眠函数进休眠的,softtimer就会失效了对吧,这样理解对么?