Fusione di due codici

Ciao a tutti.,
sto cercando di aggiungere ad un codice realizzato per ricevere i dati tra due nRF24L01 la parte per visualizzarli sul display 2.8 TFT Touch Screen ma quando inserisco la funzione per il display mi si blocca la ricezione.
Preciso che sono praticamente alle prime armi con la programmazione di Arduino.
Qualcuno mi può indicare dove sbaglio?
Grazie.
Allego il codice.

Ricevitore_e_Display.ino (3.08 KB)

Buonasera,
essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

Sarà da capire se le librerie non interferiscono sull' uso di un timer.

Ma si possono usare 2 di quei modulini contemporaneamente o si disturbano a vicenda?
Ciao Uwe

Sicuramente uno disturba l'altro e potrebbe essere un timer nelle librerie.
Siccome nel mio progetto ho la parte di ricezione e, quella più importante, di trasmissione dove gestisco tutte le funzioni di controllo, utilizzo due computer, fisso e portatile, per fare le prove.
Ho invertito le parti e, utilizzando il fisso con la ricezione, arrivano messaggi ma se ne perdono un po per strada.
In questo modo il problema si riduce perché i dati arrivano. Devo visualizzare il consumo e la produzione di energia quindi anche se si perde qualche trasmissione non è importante.
Mi preoccupa la stabilità del sistema.
Adesso inizio a modificare il codice visualizzando i dati che realmente arrivano e non quelli che ho messo per prova così posso provare senza collegamento ai computer a vedere realmente come si comporta.
saluti

Questa nRF24L01 usa la SPI e con qualche precauzione. Poi una deve essere master, ma questa libreria non lo fa.
Poi c'è un un fork ma non ho capito quali migliorie.
Infine mi viene da pensare che una stazione deve essere master, ma quale libreria ?

Nel modulo di controllo uso la libreria SPI sia per la trasmissione con nRF24L01 che per gestire un potenziometro MCP4231 che mi regola la tensione di carica delle batterie e non ho problemi, CS attiva il passaggio dati sul bus e non si creano interferenze.
Avviene un fermo della ricezione per meno di un minuto.
Ho messo un contatore e vedo che vengono perse circa 20 trasmissioni poi ne arriva una, comunque non sono dati ripetitivi.
Ricevere i dati una volta ogni minuto potrebbe anche starmi bene ma non ci può fidare.

Vedo che di sono diverse librerie, non si vede quelle del trasmettitore. Ma quello che vorrei consigliare sarebbe di andare a leggere le librerie e vedere se qualcuna fa uso di timer che non sia anche in uso con un altra.
Per mia esperienza (anche poca) mi sono trovato a far fronte a pulseIn() che bloccava un interrupt di 0,4 secondi. Che per un display sono veramente fastidiosi.

Le librerie Mirf e nRF24L01 sono per la trasmissione mentre le Adafruit per il display grafico e il touch screen che per ora non uso.
Le ho già aperte e non ho visto nessun timer o codici di ritardo.
Ci sono dei cicli for nidificati ma non giustificano un ritardo variabile di circa 40 sec che, come ho detto nel post precedente non mi disturbano molto visto che un ritardo un pò più breve lo avrei inserito lo stesso.
Mi preoccupa, non spendo il motivo, che si possa verificare la totale mancanza di trasmissione dopo aver installato tutto.

Credo di aver risolto il problema.
Ho messo un ritardo alla trasmissione. Questo permette al codice di ricezione di aggiornare il display e le altre funzioni senza ricevere nuovi dati e non avere quindi interferenze da trasmissioni premature.
Adesso non perde più dati.