Después de innumerables horas tratando de depurar mi 'funcionaba bien con el código MEGA', he diagnosticado el problema a mi SRAM. Yo excepto que mi código (una combinación de NTPClient, EthernetClient & varias lecturas de sensores que cubren todos los pines disponibles), quizás sea demasiado trabajo para UNO & se cambiará a MEGA.
Sin embargo, durante la depuración usé la función free_ram () a continuación:
int free_ram()
{
extern int __heap_start, *__brkval;
int v;
return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}
La salida, con solo la función en la fuente fue de alrededor de 1800 marca (casi correcto si el límite de UNO es 2k). Cuando utilicé esta función con el código completo, se leyó en -351. esperaba 0 (cero) o superior ...
(en caso de que el lector esté interesado, la salida de free_ram de MEGA fue 7463)
Mi pregunta es simple, ¿cuál es el límite más bajo de lectura de SRAM, usando la función detallada?