This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSPM0G3507: Sleep Mode

Part Number: MSPM0G3507


Tool/software:

Hiiii
 

      I want to put the mspm0g3507 into sleep mode when a specific GPIO becomes low & it should wake up after the GPIO is high
I have enabled interrupt for that pin below is my code 
is this the proper way to put the mcu in sleep mode or is there any other way???

void main(){
    SYSCFG_DL_init();
    adc_flag = false;
    canrx_flag = false;
    gInterruptLine1Status = 0;
    DL_SYSCTL_enableSleepOnExit();
    DL_TimerG_enableInterrupt(TIMER_0_INST, DL_TIMER_IIDX_ZERO);  
    DL_TimerG_enableInterrupt(TIMER_1_INST, DL_TIMER_IIDX_ZERO);
    DL_TimerG_startCounter(TIMER_0_INST);         
    DL_TimerG_startCounter(TIMER_1_INST);
    NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);        
    NVIC_EnableIRQ(TIMER_1_INST_INT_IRQN);
    NVIC_EnableIRQ(MCAN0_INST_INT_IRQN);
    NVIC_EnableIRQ(ADC12_0_INST_INT_IRQN);
    NVIC_EnableIRQ(GPIO_GRP_0_INT_IRQN);
    while(1U){
        if(ign_status == 0){
            DL_VREF_disableInternalRef(VREF);
            DL_ADC12_disableConversions(ADC12_0_INST);
            DL_UART_Main_disable(UART_0_INST);
            DL_UART_Main_disable(UART_1_INST);
            DL_MCAN_reset(MCAN0_INST);
            __WFI();
        }
        else if(ign_status == 1){
            SYSCFG_DL_MCAN0_init();
            DL_ADC12_enableConversions(ADC12_0_INST);
            SYSCFG_DL_UART_0_init();
            SYSCFG_DL_UART_1_init();
            SYSCFG_DL_VREF_init();
        }
    }

}
void GROUP1_IRQHandler(void)
{
    switch (DL_Interrupt_getPendingGroup(DL_INTERRUPT_GROUP_1)) {
        case GPIO_GRP_0_INT_IIDX:
            ign_status = DL_GPIO_readPins(GPIO_GRP_0_PORT,GPIO_GRP_0_IGN_IN_MCU_PIN);
            break;
    }
}