1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-22 21:23:07 +03:00

disabling RF (work-in-progress)

This commit is contained in:
Ivan Grokhotkov 2015-06-19 20:46:01 +03:00
parent aaf1f7652d
commit 432198f178
2 changed files with 22 additions and 7 deletions

View File

@ -45,13 +45,22 @@ typedef enum {
#define cli() ets_intr_lock() // IRQ Disable
#define sei() ets_intr_unlock() // IRQ Enable
enum WakeMode {
WAKE_RF_DEFAULT = 0, // RF_CAL or not after deep-sleep wake up, depends on init data byte 108.
WAKE_RFCAL = 1, // RF_CAL after deep-sleep wake up, there will be large current.
WAKE_NO_RFCAL = 2, // no RF_CAL after deep-sleep wake up, there will only be small current.
WAKE_RF_DISABLED = 4 // disable RF after deep-sleep wake up, just like modem sleep, there will be the smallest current.
enum RFMode {
RF_DEFAULT = 0, // RF_CAL or not after deep-sleep wake up, depends on init data byte 108.
RF_CAL = 1, // RF_CAL after deep-sleep wake up, there will be large current.
RF_NO_CAL = 2, // no RF_CAL after deep-sleep wake up, there will only be small current.
RF_DISABLED = 4 // disable RF after deep-sleep wake up, just like modem sleep, there will be the smallest current.
};
#define RF_MODE(mode) extern "C" int __get_rf_mode() { return mode; }
// compatibility definitions
#define WakeMode RFMode
#define WAKE_RF_DEFAULT RF_DEFAULT
#define WAKE_RFCAL RF_CAL
#define WAKE_NO_RFCAL RF_NO_CAL
#define WAKE_RF_DISABLED RF_DISABLED
typedef enum {
FM_QIO = 0x00,
FM_QOUT = 0x01,
@ -72,7 +81,7 @@ class EspClass {
void wdtDisable();
void wdtFeed();
void deepSleep(uint32_t time_us, WakeMode mode = WAKE_RF_DEFAULT);
void deepSleep(uint32_t time_us, RFMode mode = RF_DEFAULT);
void reset();
void restart();

View File

@ -118,9 +118,15 @@ void init_done() {
esp_schedule();
}
extern "C" int __get_rf_mode() __attribute__((weak));
extern "C" int __get_rf_mode()
{
return 0; // default mode
}
extern "C" {
void user_rf_pre_init() {
system_phy_set_rfoption(__get_rf_mode());
}
}