void init_done(void) { // Configure sleep, and put the radio to sleep if no interfaces are active wifi_fpm_set_sleep_type(MODEM_SLEEP_T); if (wifi_get_opmode() == NULL_MODE) { wifi_fpm_open(); wifi_fpm_do_sleep(0xfffffff); } #if MICROPY_REPL_EVENT_DRIVEN uart_task_init(); #endif mp_reset(); mp_hal_stdout_tx_str("\r\n"); #if MICROPY_REPL_EVENT_DRIVEN pyexec_event_repl_init(); #endif #if !MICROPY_REPL_EVENT_DRIVEN soft_reset: for (;;) { if (pyexec_mode_kind == PYEXEC_MODE_RAW_REPL) { if (pyexec_raw_repl() != 0) { break; } } else { if (pyexec_friendly_repl() != 0) { break; } } } soft_reset(); goto soft_reset; #endif }
/** * Disable WiFi for x us when value is not 0 * @param sleep_time_in_us * @return ok */ bool ESP8266WiFiGenericClass::forceSleepBegin(uint32 sleepUs) { _forceSleepLastMode = getMode(); if(!mode(WIFI_OFF)) { return false; } if(sleepUs == 0) { sleepUs = 0xFFFFFFF; } wifi_fpm_set_sleep_type(MODEM_SLEEP_T); wifi_fpm_open(); return (wifi_fpm_do_sleep(sleepUs) == 0); }
void ICACHE_FLASH_ATTR on_ak8963_calibration(vec3f bias) { os_printf("Bias: { x = %d, y = %d, z = %d }\r\n", (int16_t)bias.x, (int16_t)bias.y, (int16_t)bias.z); calib_bias.x = bias.x; calib_bias.y = bias.y; calib_bias.z = bias.z; /*** WiFi sleep ***/ wifi_station_disconnect(); wifi_set_opmode(NULL_MODE); wifi_fpm_set_sleep_type(MODEM_SLEEP_T); wifi_fpm_open(); wifi_fpm_do_sleep(0xfffffff); os_timer_setfn(&magnet_timer, (os_timer_func_t *)magnet_timer_cb, NULL); os_timer_arm(&magnet_timer, 300, true); }
//meant to be called from user-defined preinit() void ESP8266WiFiGenericClass::preinitWiFiOff () { // https://github.com/esp8266/Arduino/issues/2111#issuecomment-224251391 // WiFi.persistent(false); // WiFi.mode(WIFI_OFF); // WiFi.forceSleepBegin(); //WiFi.mode(WIFI_OFF) equivalent: // datasheet: // Set Wi-Fi working mode to Station mode, SoftAP // or Station + SoftAP, and do not update flash // (not persistent) wifi_set_opmode_current(WIFI_OFF); //WiFi.forceSleepBegin(/*default*/0) equivalent: // sleep forever until wifi_fpm_do_wakeup() is called wifi_fpm_set_sleep_type(MODEM_SLEEP_T); wifi_fpm_open(); wifi_fpm_do_sleep(0xFFFFFFF); // use WiFi.forceSleepWake() to wake WiFi up }