Sketch lungo cose non consentite in più schede

sto "scrivendo " uno schetch per un progetto su arduino nano rp2040

sono arrivato a 3079 righe, e sono a metà,
sta diventando inquietante trovare il punto giusto da modificare.
Volevo iniziare a spostare pezzi di codice su altre schede,
e precisamente volevo sapere se un blocco di codice (quasi tutto) è dentro un if ()
come si procede a suddividerlo in più schede

Per dividerlo in più schede io creerei delle funzioni specifiche, le dichiaro nel file principale e le scrivo in una scheda separata

Una per scheda, o forse meglio, tutte le funzioni tra di loro "parenti" nello stessa scheda

Occhio alle variabili globali/locali ed al passaggio parametri/restituzione risultato

Concordo con standardoil. io per fare questo in genere creo un file *.ino con setup() e loop() poi divido le varie funzionalità in blocchi di funzioni e variabili a seconda dell'ambito (es. un blocco di funzioni per la gestione del display LCD, uno per la comunicazione di rete, uno per i sensori, eccetera) e definisco quindi per ognuno di questi un file *.h che includo nel *.ino principale, nell'ordine eventualmente necessario. Il file li metti tutti nella stessa directory del file *.ino e quando apri l'IDE te li mostra tutti.

Come ha scritto standardoil, attenzione alle variabili globali e passaggio di parametri ossia ricorda che i file *.h che includi è come se li scrivessi nel file *.ino quindi non puoi avere variabili globali con lo stesso nome in moduli *.h diversi.
L'alternativa sarebbe programmare realmente ad oggetti facendo un *.cpp per ognuna delle classi che vuoi gestire, ma visto che finora hai scritto in modo "procedurale" andiamo su cose più difficili da implementare a questo punto.

ok dai... ho capito che bisogna pensarci prima ad "organizzare" un sketch lunghissimo :pensive:

@elrospo, ma assolutamente no!
@docdoc e @Standardoil ti hanno scritto esattamente il contrario...

Dopo aver raccolto le funzioni in "blocchi" omogenei (per una questione di leggibilità, ad esempio se devi visualizzare qualcosa su un display lcd, tutto il codice relativo lo organizzi in funzioni e lo metti in file tipo "gestione_lcd.h"), l'unica cosa a cui devi stare attento è l'ordine in cui includi questi file nello sketch principale.

Se scrivi #include "gestione_lcd.h" il compilatore prenderà tutto il codice scritto in quel file e lo metterà dove chiami #include.
Quindi se in questo file sono usate variabili globali dello sketch principale, quest'ultime dovranno essere dichiarate PRIMA di #include altrimenti il compilatore non sa che cosa sono.

E' più semplice a farlo che a spiegarlo.

1 Like

Questo sketch oramai è troppo incasinato perché è stato scritto senza nessuna regola, Amen :rage: . Vuol dire che invece di metterci 3 mesi per completarlo ce ne metterò sei di mesi,
m serve da lezione, da i prossimi sketch scriverò con ordine è pulizia (come disse Confucio)