最近在开发智能说法,遇到进入低功耗,定时器平凡启动,会影响功耗,但要处理一些轮询的业务逻辑,要在那个位置做轮询业务的处理?
【已解决】BT3L(tlsr8253)进入低功耗,轮询工作怎么处理?
Re: BT3L(tlsr8253)进入低功耗,轮询工作怎么处理?
这里介绍一个简单的低功耗轮询处理办法:
当准备进入低功耗时,执行ty_system_enter_suspend 这个函数,设备允许进入休眠状态,设备在完成所有事件后会主动进入休眠
在唤醒后 执行 ty_system_exit_suspend 来禁止设备休眠。
其中芯片在唤醒的时会执行 user_init_deepRetn 这个函数, 唤醒后的操作都可以放在这个函数的最下方。
Re: BT3L(tlsr8253)进入低功耗,轮询工作怎么处理?
就是计入睡眠之前关闭定时器,唤醒后启动定时器对吗?
Re: BT3L(tlsr8253)进入低功耗,轮询工作怎么处理?
有没有参考的例程
Re: BT3L(tlsr8253)进入低功耗,轮询工作怎么处理?
不要关闭定时器, SDK中对于休眠的逻辑是自动处理的,只要没有任务需要执行,芯片就默认进入休眠模式,休眠的时长为最近一个要执行的任务决定(可以是蓝牙射频的任务,也可以是用户的定时器任务)。
但是我们在SDK中设置了一个标志位,这个标志位会让系统一直判定有任务执行, 所以不会进入休眠。想要关闭这个标志位就要执行 ty_system_enter_sleep。打开标志位就执行ty_system_exit_sleep。
注意:函数 ty_system_enter_sleep 中的 cpu_sleep_wakeup 要注释掉,否则定时器休眠无法实现。