Библиотека MemoryFree.h

Библиотека MemoryFree.h предназначена для определения оставшейся свободной памяти

Скачать | Страница на GitHub

Очень часто, при отладке программ на Ардуино, бывает необходимо узнать количество свободной памяти в текущий момент. В этом нам поможет небольшая, но очень полезная библиотека MemoryFree.h

Библиотека имеет всего одну функцию, которая возвращает целочисленное значение свободной памяти в байтах.

Функция: freeMemory()

Случаются ситуации, когда программа на Ардуино зависает или начинает заполнять переменные мусором. Для того чтобы понять, что происходит, можно воспользоваться функцией freeMemory(). Вывести показания в консоль и понаблюдать, что происходит. Возможно какая-либо из переменных не освобождает память и память начинает переполняться. Если объем памяти постоянно уменьшается, то это повод, чтобы поискать ошибку в программе.

 

Использование MemoryFree.h на ESP8266

К сожалению данная библиотека не работает на контроллерах Esp8266. Если вы программируете контроллер esp8266 в среде Arduino, то для определения свободной памяти на Esp8266 можно воспользоваться встроенной функцией:

ESP.getFreeHeap()

Возможно также вам потребуется еще одна полезная функция, которая возвращает размер флеш памяти esp8266 в байтах:

ESP.getFlashChipSize()

Внимание! Значение может быть меньше реального размера, т.к. обьем памяти задается в параметрах Arduino IDE и зависит от выбранного типа контроллера.

 

Пример использования библиотеки MemoryFree.h

#include <MemoryFree.h> // подключаем библиотеку
 
 
void setup() {
  Serial.begin(9600); // инициализируем ком порт
}
 
void loop() {
 
  Serial.print("Free memory = ");
  Serial.println(freeMemory()); // выводим объем памяти
 
  delay(1000);
}

 

1124