Go Down

Topic: Strano freeze del loop (Read 4 times) previous topic - next topic

essere_digitale


Ma "nome_variabile_di_tipo_testo" di che tipo è?
F() dovrebbe lavorare con i tipi String.


nel mio codice
Code: [Select]

String secs_txt;
  for(int i = 1; i < 6; i++){
    secs_txt = String(30 - i * 5);
    Serial.println(F("Ethernet ready in " + secs_txt + " sec.")); // ERRORE
    digitalWrite(led, HIGH);
    delay(100);
    digitalWrite(led, LOW);
    delay(4900);
  };
--
Alfredo

leo72

Ho dato un'occhiata meglio al core e la funzione F() vedo che è un define per prendere direttamente una stringa. Non essendo una funzione, non accetta parametri in forma di variabili.

essere_digitale


Ho dato un'occhiata meglio al core e la funzione F() vedo che è un define per prendere direttamente una stringa. Non essendo una funzione, non accetta parametri in forma di variabili.


Possibili workaround?
--
Alfredo

leo72

Mettilo solo nelle parti di codice dove hai stringhe definite, ad esempio "<html>" o "<head>". Per il resto prova ad usare PROGMEM.
http://www.arduino.cc/en/Reference/PROGMEM

essere_digitale


Mettilo solo nelle parti di codice dove hai stringhe definite, ad esempio "<html>" o "<head>".


già fatto, ma freeza ancora


Per il resto prova ad usare PROGMEM.
http://www.arduino.cc/en/Reference/PROGMEM



ho provato e anche solo nella dichiarazione di msg, ma mi da questo errore: error: "__c causes a section type conflict"
quindi, invece di
String msg = "";
ho scritto
PROGMEM String msg = "";

Non c'è un modo di debugare l'esecuzione dello sketch e vedere se la scheda freezata fa qualcosa?
--
Alfredo

Go Up