Hola estoy mirando el tema de uso de la memoria RAM. He visto que hay ciertas funciones que te devuelven la memoria ram que está usando ARduino. He usado la función freeram y parace que funciona bien:
int freeRam()
{
extern int __heap_start, *__brkval;
int v;
return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}
El problema que tengo es que al declarar una variable no incrementa su valor. Por ejemplo pongo int hola=25 y no incrementa el uso de la ram en 2 bytes. Cuando envió por serie una variable entonces si que incrementa el uso de la memoria ram. ¿Sabéis porque?
El código de prueba que he hecho es:
//char str[] = "Hello, world!";
int hola=25;
int freeRam()
{
extern int __heap_start, *__brkval;
int v;
return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}
void setup()
{
Serial.begin(9600);
}
void loop(){
// Serial.println(str);
// Serial.println(hola);
Serial.print("freeMemory()=");
Serial.println(freeRam());
delay(1000);
}