Skip to content

Commit 1590beb

Browse files
committed
add to ESP class:
getChipId getSDKversion getBootVersion getBootMode getCPUfreqMHz add some defines for AVR like WDT control
1 parent 4c53c81 commit 1590beb

File tree

2 files changed

+68
-5
lines changed

2 files changed

+68
-5
lines changed

hardware/esp8266com/esp8266/cores/esp8266/Esp.cpp

+35-4
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ extern "C" {
2424
#include "user_interface.h"
2525
}
2626

27-
extern "C" void ets_wdt_enable (void);
28-
extern "C" void ets_wdt_disable (void);
29-
extern "C" void wdt_feed (void);
27+
28+
//extern "C" void ets_wdt_init(uint32_t val);
29+
extern "C" void ets_wdt_enable(void);
30+
extern "C" void ets_wdt_disable(void);
31+
extern "C" void wdt_feed(void);
3032

3133
EspClass ESP;
3234

@@ -35,11 +37,17 @@ EspClass::EspClass()
3537

3638
}
3739

38-
void EspClass::wdtEnable(int)
40+
void EspClass::wdtEnable(uint32_t timeout_ms)
3941
{
42+
//todo find doku for ets_wdt_init may set the timeout
4043
ets_wdt_enable();
4144
}
4245

46+
void EspClass::wdtEnable(WDTO_t timeout_ms)
47+
{
48+
wdtEnable((uint32_t) timeout_ms);
49+
}
50+
4351
void EspClass::wdtDisable(void)
4452
{
4553
ets_wdt_disable();
@@ -76,4 +84,27 @@ uint32_t EspClass::getFreeHeap(void)
7684
return system_get_free_heap_size();
7785
}
7886

87+
uint32_t EspClass::getChipId(void)
88+
{
89+
return system_get_chip_id();
90+
}
91+
92+
const char * EspClass::getSDKversion(void)
93+
{
94+
return system_get_sdk_version();
95+
}
7996

97+
uint8_t EspClass::getBootVersion(void)
98+
{
99+
return system_get_boot_version();
100+
}
101+
102+
uint8_t EspClass::getBootMode(void)
103+
{
104+
return system_get_boot_mode();
105+
}
106+
107+
uint8_t EspClass::getCPUfreqMHz(void)
108+
{
109+
return system_get_cpu_freq();
110+
}

hardware/esp8266com/esp8266/cores/esp8266/Esp.h

+33-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,27 @@
2020

2121
#ifndef ESP_H
2222
#define ESP_H
23+
/**
24+
* AVR macros for WDT managment
25+
*/
26+
typedef enum {
27+
WDTO_0MS = 0, //!< WDTO_0MS
28+
WDTO_15MS = 15, //!< WDTO_15MS
29+
WDTO_30MS = 30, //!< WDTO_30MS
30+
WDTO_60MS = 60, //!< WDTO_60MS
31+
WDTO_120MS = 120, //!< WDTO_120MS
32+
WDTO_250MS = 250, //!< WDTO_250MS
33+
WDTO_500MS = 500, //!< WDTO_500MS
34+
WDTO_1S = 1000,//!< WDTO_1S
35+
WDTO_2S = 2000,//!< WDTO_2S
36+
WDTO_4S = 4000,//!< WDTO_4S
37+
WDTO_8S = 8000 //!< WDTO_8S
38+
} WDTO_t;
39+
2340

41+
#define wdt_enable(time) ESP.wdtEnable(time)
42+
#define wdt_disable() ESP.wdtDisable()
43+
#define wdt_reset() ESP.wdtFeed()
2444

2545
enum WakeMode {
2646
WAKE_RF_DEFAULT = 0, // RF_CAL or not after deep-sleep wake up, depends on init data byte 108.
@@ -33,8 +53,10 @@ class EspClass {
3353
public:
3454
EspClass();
3555

36-
void wdtEnable(int timeout_ms = 0);
3756
// TODO: figure out how to set WDT timeout
57+
void wdtEnable(uint32_t timeout_ms = 0);
58+
void wdtEnable(WDTO_t timeout_ms = WDTO_0MS);
59+
3860
void wdtDisable(void);
3961
void wdtFeed(void);
4062

@@ -45,6 +67,16 @@ class EspClass {
4567
void restart(void);
4668
uint16_t getVCC(void);
4769
uint32_t getFreeHeap(void);
70+
71+
uint32_t getChipId(void);
72+
73+
const char * getSDKversion(void);
74+
75+
uint8_t getBootVersion(void);
76+
uint8_t getBootMode(void);
77+
78+
uint8_t getCPUfreqMHz(void);
79+
4880
};
4981

5082
extern EspClass ESP;

0 commit comments

Comments
 (0)