Я хочу перевести мой LPC1769 в режим глубокого сна и дать ему проснуться с прерыванием RTC. LPC должен просыпаться каждую минуту, чтобы прочитать датчик. Сначала я хочу проверить его с мигающей лампочкой на выводе test_pin, как показано в приведенном ниже коде. Но проблема в том, что светодиод не мигает. Прерывание 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();
}