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:
parent
aaf1f7652d
commit
432198f178
@ -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();
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user