MrG*_*ass 6 memory-management arduino
我正在用我的 Arduino 做一个简单的项目。最近我不得不将我的一个变量转换为 long 而不是 int,为了保持简单,我只是移动了它与之交互的所有数字(所以我不必担心跨类型比较和数学)。这看起来很浪费,但这只是我自己的一个时钟,我不太在意。
然而,它让我想知道我使用了多少内存。我怀疑这是一个问题,但我意识到我不知道任何检查方法。
那么,有没有办法检查 Arduino 使用的内存量?
理想情况下,我想打印出通过串行连接可用的当前内存/总量。
你可以用这个。它会让您了解您所在的位置:
Serial.print(availableMemory());
// free RAM check for debugging. SRAM for ATmega328p = 2048Kb.
int availableMemory() {
// Use 1024 with ATmega168
int size = 2048;
byte *buf;
while ((buf = (byte *) malloc(--size)) == NULL);
free(buf);
return size;
}
Run Code Online (Sandbox Code Playgroud)