微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2640退出睡眠

CC2640退出睡眠

时间:10-02 整理:3721RD 点击:

Hi,TI员工:

请问一个关于CC2640开启POWER_SAVING后如何自由控制退出、进入睡眠的问题。

CC2640有没有想CC2541的osal_pwrmgr_task_state(task_id, PWRMGR_HOLD)机制可以自由控制进出睡眠?若有,请问使用哪个函数?若没有,请问有没有其他方法自由控制进入、退出省电模式?谢谢!

CC2640电源管理完全是交给TI-RTOS的, 是否进入低功耗,不仅和你自己的应用有关,和驱动也有很大的关系。官方提供的驱动也是基于TI-RTOS,已经把进出低功耗考虑进来了(不是所有,大部分都有)。

所以,如果,你没有使用任何外设,默认程序,则开关低功耗简单使用

Power_setConstraint(PowerCC26XX_SB_DISALLOW);//不进入低功耗

Power_releaseConstraint(PowerCC26XX_SB_DISALLOW);//释放

下面的代码摘自串口驱动,供参考。

/*
* Ensure safe setting of the standby disallow constraint.
*/
static inline void threadSafeStdbyDisSet(volatile bool *pConstraint) {
unsigned int key;

/* Disable interrupts */
key = Hwi_disable();

/* Only act if the current constraint is not previously set */
if (!*pConstraint) {
/* Set constraints to guarantee operation */
Power_setConstraint(PowerCC26XX_SB_DISALLOW);
*pConstraint = true;
}

/* Re-enable interrupts */
Hwi_restore(key);
}

/*
* Ensure safe releasing of the standby disallow constraint.
*/
static inline void threadSafeStdbyDisRelease(volatile bool *pConstraint) {
unsigned int key;

/* Disable interrupts */
key = Hwi_disable();

if (*pConstraint) {
/* release constraint since operation is done */
Power_releaseConstraint(PowerCC26XX_SB_DISALLOW);
*pConstraint = false;
}

/* Re-enable interrupts */
Hwi_restore(key);
}

/*

多谢啦!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top