请问CC1310 nortos裸机如何实现standby模式休眠?并可以用IO外部中断随时立刻唤醒,从唤醒后的程序点开始恢复执行(不复位)。
我已经设置了一个IO口(IOID_4)作为外部中断,如下代码:
然后按照这个链接 (www.ti.com.cn/.../swra486a.pdf) 的低功耗设置说明,试了很久都没法实现(程序如下图片),进入休眠就唤醒不了了
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
请问CC1310 nortos裸机如何实现standby模式休眠?并可以用IO外部中断随时立刻唤醒,从唤醒后的程序点开始恢复执行(不复位)。
我已经设置了一个IO口(IOID_4)作为外部中断,如下代码:
然后按照这个链接 (www.ti.com.cn/.../swra486a.pdf) 的低功耗设置说明,试了很久都没法实现(程序如下图片),进入休眠就唤醒不了了
standby休眠就只用Power_idleFunc()函数吗,然后用定时器唤醒?Power_idleFunc休眠的电流是否与usleep休眠的电流是一样的呢?
1.
standby休眠就只用Power_idleFunc()函数吗,然后用定时器唤醒
用定时器实现类似usleep的功能,这个我再想一下
2.
电流测量需要你根据你的项目去测
nortos可以参考SDK中的例程C:\ti\simplelink_cc13x0_sdk_4_20_01_03\examples\nortos\CC1310_LAUNCHXL\drivers\pinStandby测量
它已经设置好了电源策略,会在休眠期间自动进入standby模式,测量时注意断开调试器,仅使用外部的VDD和GND供电
3.
你再调试一下程序,看看程序跑到哪一行 就停止
好的,麻烦帮忙看看定时器怎么样实现usleep,我们的产品对功耗要求比较高,还有一个问题就是Power_idleFunc()是进入idle模式还是standby模式呢,如果开了射频后调用Power_idleFunc(),是不是直接跳过不进入休眠了?
Power_idleFunc()函数描述:
要添加到应用程序空闲循环的电源功能。
应将此函数添加到应用程序空闲循环中。 (执行此操作的方法取决于所使用的操作系统。)此函数将在适当的时候调用配置的电源策略函数。 要调用的特定策略函数在应用程序定义的 Power 配置对象中配置为“policyFxn”。
进入idle模式还是standby模式应该和您使用的电源方式有关
明确一下你们的流程
前期:由正常工作状态进入休眠状态 (确定的休眠时间)
中期:由休眠状态唤醒然后工作一段时间
后期:再进入休眠是可以用IO外部中断唤醒的(休眠时间不确定)
是这样吗
前期可以考虑
1.task_sleep() 是让当前任务停止,并未进入低功耗
task_sleep(n)可以让当前task处于block状态,然后在设定的n时间后,该task变为ready状态。
当所有user task都处于blocking状态时,系统就进入休眠状态。当有task处于ready状态时,系统就退出休眠,继续执行
2.Power_setConstraint和Power_releaseConstraint 不过是在rtos中的
提供思路,具体实现还是看你的项目