RSL10的低功耗睡眠指令:SYS_WAIT_FOR_INTERRUPT 和 SYS_WAIT_FOR_EVENT,还是有区别的。

RSL10自带的子程序void Sys_PowerModes_Sleep_WakeupFromFlash,若指令用 “SYS_WAIT_FOR_INTERRUPT;”可以进入睡眠,改用“SYS_WAIT_FOR_EVENT;”就无法进入睡眠,电流比较大。

void Sys_PowerModes_Sleep_WakeupFromFlash(
                       struct sleep_mode_flash_env_tag *sleep_mode_env)
{
    /* Enable retention regulators with custom trimming */
    ACS->VDDRET_CTRL = (((uint32_t) sleep_mode_env->VDDMRET_trim)   << 
                        ACS_VDDRET_CTRL_VDDMRET_VTRIM_Pos)                                    |
                       (((uint32_t) sleep_mode_env->VDDMRET_enable) <<
                        ACS_VDDRET_CTRL_VDDMRET_ENABLE_Pos)                                   |
                       (((uint32_t) sleep_mode_env->VDDTRET_trim)   << 
                        ACS_VDDRET_CTRL_VDDTRET_VTRIM_Pos)                                    |
                       (((uint32_t) sleep_mode_env->VDDTRET_enable) << 
                        ACS_VDDRET_CTRL_VDDTRET_ENABLE_Pos)                                   |
                       (((uint32_t) sleep_mode_env->VDDCRET_trim)   << 
                        ACS_VDDRET_CTRL_VDDCRET_VTRIM_Pos)                                    |
                       (((uint32_t) sleep_mode_env->VDDCRET_enable) << 
                        ACS_VDDRET_CTRL_VDDCRET_ENABLE_Pos);

    /* Set wake-up configuration registers */
    ACS->WAKEUP_CFG = sleep_mode_env->wakeup_cfg;

    /* Set wake-up control/status registers */
    ACS->WAKEUP_CTRL = sleep_mode_env->wakeup_ctrl;

    /* Power-off/retain memory instances */
    SYSCTRL->MEM_POWER_CFG = sleep_mode_env->mem_power_cfg |
                             PROM_POWER_ENABLE             |
                             FLASH_POWER_ENABLE;

    /* Switch SYSCLK to RC startup oscillator */
    CLK_SYS_CFG->SYSCLK_SRC_SEL_BYTE = SYSCLK_CLKSRC_RCCLK_BYTE;

    /* Enter Sleep Mode */
    ACS->PWR_MODES_CTRL= PWR_SLEEP_MODE;

    /* Wait for interrupt */
    SYS_WAIT_FOR_INTERRUPT;
        //SYS_WAIT_FOR_EVENT;//不能用这个,用这个无法睡眠
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值