深度睡眠RTC唤醒LPC17xx

时间:2018-11-06 07:22:58

标签: lpc

我想将我的LPC1769置于深度睡眠模式,并通过RTC中断将其唤醒。 LPC必须每分钟醒来才能读取传感器。我想首先通过“ test_pin”引脚上的指示灯闪烁对其进行测试,如以下代码所示。但是问题是,LED不闪烁。 RTC中断有效,因为我已经在没有深度睡眠模式的情况下对其进行了测试,并且可以正常工作。

所以我的问题是,有人可以帮助我将LPC1769置于深度睡眠模式并通过RTC中断将其唤醒。

这是我到目前为止的代码:

int main(){
    RTC_init();
    RTC_start();
    deepSleepOn();
    while(1);
}
void RTC_init(){
    PCONP |= (1 << RTC_POWER);
    CCR = 0;
    AMR = 0;
    CIIR = 0;
    ILR |= 0x01;    //reset interrupt
}
void RTC_start(){
    CIIR |= 0x02;   //an increment of the minute value generatues an interrupt
    CCR |= 0x01;    //time counter enabled
    ISER0 |= (1 << RTC_INTERRUPT);
}
void deepSleepOn(){
    SCR |= (1 << SLEEPBIT);
    PCON &= ~((1 << PM1) | (1 << PM0));
    asm("wfi");
}
void RTC_IRQHandler(void){
    ILR |= 0x01;    //reset interrupt
    GPIO_toggle(test_port, test_pin);
    deepSleepOn();
}

0 个答案:

没有答案