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;
}
}