Deep Sleep RTC despertador LPC17xx

-1

Quiero poner mi LPC1769 en modo de suspensión profunda y dejar que se active con una interrupción de RTC. El LPC tiene que despertarse cada minuto para leer un sensor. Quiero probarlo primero con una luz intermitente en el pin "test_pin" como se ve en el código a continuación. Pero el problema es que el led no parpadea. La interrupción de RTC funciona porque la he probado sin el modo de suspensión profunda y funcionó bien.

Entonces, mi pregunta, ¿puede alguien ayudarme a poner mi LPC1769 en modo de suspensión profunda y activarlo con una interrupción de RTC?

Este es el código que tengo hasta ahora:

'

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();
} '
    
pregunta Arjon Arts

0 respuestas

Lea otras preguntas en las etiquetas