void osal_pwrmgr_powerconserve( void ) { uint32 next; halIntState_t intState; if ( pwrmgr_attribute.pwrmgr_device != PWRMGR_ALWAYS_ON ) //判断是否开启低功耗模式 { if ( pwrmgr_attribute.pwrmgr_task_state == 0 ) //判断任务的 <span style="font-family: Arial, Helvetica, sans-serif;">pwrmgr_task_state 是否为 0</span> { HAL_ENTER_CRITICAL_SECTION( intState ); next = osal_next_timeout(); HAL_EXIT_CRITICAL_SECTION( intState ); OSAL_SET_CPU_INTO_SLEEP( next ); //进入低功耗程序 } } }以上是 CC2541 进入低功耗程序:
1. 线设 POWER_SAVING,使 pwrmgr_attribute.pwrmgr_device 的值不等于 PWRMGR_ALWAYS_ON
2. 调用 osal_pwrmgr_task_state( uint8 task_id, uint8 state ), state 设置成 PWRMGR_CONSERVE, 就会把相应的 task_id 对应的 pwrmgr_task_state
中那一位设置成0.
这样基本进入低功耗。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/haozi0_0/article/details/47083095