Hi,
I am using thingy91 with NCS V2.4.0 SDK.
I have enabled settings for my devices mode store in flash. for mode of my device i created one settings variable.
first time power up device by default in deep sleep mode. and when we press button more then x time. device wake up and write setting flag -> normal mode. and reboot.
after every power cycle device boot in normal mode. that cycle i am trying to implement.
void enter_deep_sleep(void)
{
int err = 0;
const struct pm_state_info si = {PM_STATE_SOFT_OFF, 0, 0};
printk("Entering deep sleep\n");
k_sleep(K_MSEC(100)); // Add a delay to allow logs to be printed
// pm_state_force(0, &si);
// pm_system_suspend(0, 0);
// nrf_regulators_system_off(NRF_REGULATORS_NS);
printk("Shutting down modem\n");
err = nrf_modem_at_printf("AT+CFUN=0");
if (err) {
printk("AT+CFUN failed\n");
return 0;
}
nrf_modem_lib_shutdown();
// lte_lc_power_off();
k_sleep(K_SECONDS(1));
// nrf_regulators_system_off(NRF_REGULATORS_NS);
pm_state_set(PM_STATE_SOFT_OFF, 0);
// pm_system_suspend(0, 0);
// nrf_power_system_off(NRF_POWER);
}
I have try this code for enter sleep mode. before enter_deep_sleep intialise button interrupt and call back function detect x sec botton precss and change setting flag.
this scenario work for Normal mode -> sleep mode. but sleep mode -> normal mode not able to detect Button state. so not working.
first of all i need to know this flow is fine as per my requirement. if not then give some suggestion and also let me know what things missing in flow.
Thanks
Parth
