exit status 1 Errore durante la compilazione per la scheda Arduino/Genuino Uno

ho da poco ripreso la programmazione con Arduino e non è che mi ricordi tantissimo.
La difficoltà che ho sempre avuto è stata quella di riuscire ad interpretare gli errori. La maggiorparte delle volte ho sempre risolto perché si trattava sempre di errori di battitura.

Questa volta però non riesco a capire come risolvere.

Sto usando la libreria della Nextion HMI, ma installandola mi dice che ci sono più librerie in uso e se cancello la cartella, poi mi dice che non esiste.

In allegato il file txt di tutto ciò che mi esce dopo aver compilato lo sketch, mentre di seguito il sorgente

#include <Nextion.h>



const int led = 13;



NexButton b0 = NexButton(0,2,"b0");
NexButton b1 = NexButton(0,3,"b1");
NexText t0 =   NexText(0,4,"t0");




NexTouch *nex_listen_list[]={ 
 &b0, 
 &b1, 
 NULL
};



void b0PopCallback(void *ptr) {
 t0.setText ("State:ON");
 digitalWrite(led,HIGH);

}



void b1PopCallback(void *ptr) {
 t0.setText ("State:OFF");
 digitalWrite(led,LOW);

}

void setup() {
 Serial.begin(9600);
 nexInit();
 


 b0.attachPop(b0PopCallback, &b0);
 b1.attachPop(b1PopCallback, &b1);

 pinMode(led,OUTPUT);
 digitalWrite(led,LOW);
}

void loop() {
 // put your main code here, to run repeatedly:
 nexLoop(nex_listen_list);
}

Arduino.txt (47.1 KB)

Buonasera,

ho ripreso a programmare con arduino e sono al quanto arrugginito. A dire il vero non sono mai stato un esperto e ogni qualvolta viene fuori un errore non riesco mai a interpretarlo. Sino ad oggi ho sempre risolto perché mi sono accorto che erano tutti errori di battitura (% al posto &; o al posto di 0, nome variabile diverso da quello dichiarato, parola chiave scritta male ecc...).

Quello che però mi viene fuori dalla compilazione dello sketch di seguito non riesco proprio a risolverlo:

#include <Nextion.h>



const int led = 13;

//Dichiarazioni degli oggetti Nextion, Page, ID componente, Nome Componente

NexButton b0 = NexButton(0,2,"b0");
NexButton b1 = NexButton(0,3,"b1");
NexText t0 =   NexText(0,4,"t0");


//registro degli eventi al toccare i tasti

NexTouch *nex_listen_list[]={ 
  &b0, 
  &b1, 
  NULL
};
 
//Button b0 component popcallback function
//When ON button is Released the LED turn ON and the state text changes

void b0PopCallback(void *ptr) {
  t0.setText ("State:ON");
  digitalWrite(led,HIGH);

}

//Button b1 component popcallback function
//When OFF button is Released the LED turn OFF and the state text changes

void b1PopCallback(void *ptr) {
  t0.setText ("State:OFF");
  digitalWrite(led,LOW);

}

void setup() {
  Serial.begin(9600);
  nexInit();
  
  //RIchiamo delle funzioni prima create al verificarsi dell'evento touch button

  b0.attachPop(b0PopCallback, &b0);
  b1.attachPop(b1PopCallback, &b1);

  pinMode(led,OUTPUT);
  digitalWrite(led,LOW);
}

void loop() {
  // put your main code here, to run repeatedly:
  nexLoop(nex_listen_list);
}

Questo dipende anche dal fatto che copio il sorgente dai più esperti però poi commento per ricordarmi a cosa servono i vari blocchi.

In allegato il file txt con l'uotput della compilazione

Mi scuso se troverete un altro topic mio in cui chiedo la stessa cosa, ma non sono più riuscito a trovarlo e quindi ne sto scrivendo un altro.

Ho riletto il regolamento e credo che questo post sia impostato meglio.

Arduino.txt (47.1 KB)

tommaso79:
Mi scuso se troverete un altro topic mio in cui chiedo la stessa cosa, ma non sono più riuscito a trovarlo e quindi ne sto scrivendo un altro.

That's because you posted in Italian to an English language board, so a moderator had to move it to the forum's International > Italiano board. In the future, please use the Italiano board if you want to post in Italian. If you prefer to post to the English language boards, then you must use English (and be able to understand replies in English).

Google translate:
Questo perché hai pubblicato in italiano su una bacheca di lingua inglese, quindi un moderatore ha dovuto spostarlo sul forum International > Italiano board . In futuro, si prega di utilizzare la scheda Italiano se si desidera pubblicare in italiano. Se preferisci pubblicare post nelle bacheche di lingua inglese, devi utilizzare l'inglese (ed essere in grado di comprendere le risposte in inglese).

>tommaso79: Prima di tutto, come già indicato da "pert", ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post ...

... poi, essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione il su citato REGOLAMENTO ...

... inoltre, in conformità al suddetto regolamento, punto 7, devi editare il tuo primo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo

P.S.: Il tuo post è già stato spostato nell'opportuna sezione del forum "Italiano”dove puoi proseguire la discussione.
P.P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread e sistemato il codice come richiesto, nessuno ti potrà rispondere, quindi ti consiglio di farlo al più presto. :wink:

Non funziona senza modifiche con la board uno.
Per la uno soltanto puoi provare a modificare il file della libreria "NexConfig.h"
In origine trovi queste due righe

#define DEBUG_SERIAL_ENABLE 
#define nexSerial Serial2

che modifichi così:

//#define DEBUG_SERIAL_ENABLE 
#define nexSerial Serial

In questo modo si dovrebbero risolvere i problemi di compilazione, ma considera che non potrai più usare Serial.print ecc.
Mentre se hai una arduino MEGA che ha più seriali hardware non devi modificare nulla e puoi usare Serial.print ecc come sempre.

Ciao.

Grazie Guglielmo e Grazie Maurotec.

Rispondo solo ora per via di impegni di lavoro e poi festività.

Nel frattempo sono andato avanti e sto usando Aduino Mega 2560.

Quello che ho scoperto leggendo altri post sul forum è che alcuni errori vengon fuori dipendendo dalla versione IDE di arduino. Infatti lo stesso sketch che con Arduino 1.8.6 funziona con 1.8.10 mi dà errori.

Adesso ho un altro problema.

Sempre leggendo i vari post ho capito che se ho un sensore DHT11 che invia sempre i dati di Temperatura e Umidità, i pulsanti per accendere la luce non funzionano bene poiché la seriale è impegnata.

Ho pensato allora di creare due pagine. Una in cui ci sono i tasti e l'altra dove ci sono i dati di temperatura e di umidità delle varie stanze.

Se sono sulla prima pagina posso accendere le luci. Per vedere T e U vado sulla seconda pagina.

Il cambio pagina l'ho programmato direttamente su Nextion. Quello che non riesco a fare è comunicare a Arduino in quale pagina si trova l'HMI.

Ho provato ad usare page0.popcallback però non ho capito cosa devo premere per far cambiare pagina.

Spero di essere stato chiato

Grazie mille

Tommaso