我想将我的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();
}