From c0e11732d4cac1127e1526df174b06b02e2f0bae Mon Sep 17 00:00:00 2001 From: tekka007 Date: Mon, 30 May 2016 22:29:23 +0200 Subject: [PATCH] Add hwFreeMem() function --- libraries/MySensors/core/MyHwATMega328.cpp | 8 +++++++- libraries/MySensors/core/MyHwESP8266.cpp | 4 ++++ libraries/MySensors/core/MyHwSAMD.cpp | 15 +++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/libraries/MySensors/core/MyHwATMega328.cpp b/libraries/MySensors/core/MyHwATMega328.cpp index 5380d6a..9aad4fd 100644 --- a/libraries/MySensors/core/MyHwATMega328.cpp +++ b/libraries/MySensors/core/MyHwATMega328.cpp @@ -152,7 +152,7 @@ uint16_t hwCPUVoltage() { return (1125300UL) / ADC; } -uint8_t hwCPUFrequency() { +uint16_t hwCPUFrequency() { noInterrupts(); // setup timer1 TIFR1 = 0xFF; @@ -180,6 +180,12 @@ uint8_t hwCPUFrequency() { return TCNT1 * 2048UL / 100000UL; } +uint16_t hwFreeMem() { + extern int __heap_start, *__brkval; + int v; + return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); +} + #ifdef MY_DEBUG diff --git a/libraries/MySensors/core/MyHwESP8266.cpp b/libraries/MySensors/core/MyHwESP8266.cpp index a711606..1e50156 100644 --- a/libraries/MySensors/core/MyHwESP8266.cpp +++ b/libraries/MySensors/core/MyHwESP8266.cpp @@ -126,6 +126,10 @@ uint16_t hwCPUFrequency() { return ESP.getCpuFreqMHz()*10; } +uint16_t hwFreeMem() { + return ESP.getFreeHeap(); +} + #ifdef MY_DEBUG void hwDebugPrint(const char *fmt, ... ) { char fmtBuffer[300]; diff --git a/libraries/MySensors/core/MyHwSAMD.cpp b/libraries/MySensors/core/MyHwSAMD.cpp index 0e404dc..115400a 100644 --- a/libraries/MySensors/core/MyHwSAMD.cpp +++ b/libraries/MySensors/core/MyHwSAMD.cpp @@ -138,6 +138,21 @@ int8_t hwSleep(uint8_t interrupt1, uint8_t mode1, uint8_t interrupt2, uint8_t mo return -2; } +uint16_t hwCPUVoltage() { + // TODO: Not supported! + return 0; +} + +uint16_t hwCPUFrequency() { + // TODO: Not supported! + return 0; +} + +uint16_t hwFreeMem() { + // TODO: Not supported! + return 0; +} + #ifdef MY_DEBUG void hwDebugPrint(const char *fmt, ... ) { if (MY_SERIALDEVICE) {