off topic on ---
maledetta nuova interfaccia. non mi abituerò mai
off topic off ----
Salve a tutti . Parliamo di Serial.print
Uso tantissimo - come credo facciano in molti - il Serial.print, per poter fare debugging e capire che succede.
Come sappiano spreca molte risorse ed una volta terminato lo sketch, in pratica i serial print non servono più.
Piuttosto che cancellarli tutti (andando incontro anche al fatto che un giorno potrebbero riservire) , io uso il metodo di commentare l'istruzione Serial.begin, in modo che non compaia nulla.
La domanda è : il metodo che adotto è giusto ed equivale alla cancellazione di tutti i serial print o in questo modo spengo-accendo e basta e le risorse vengono in ogni caso utilizzate ?.
Se sbaglio, esiste altro metodo per ottenere un risultato simile ?
Tornando alla tua domanda ... NON, non è il modo giusto di procedere e non risparmi risorse ...
... il modo corretto è usare il pre-processore del 'C':
... in questo modo, finche c'è la #define iniziale le righe racchiuse tra il #ifdef ed il #endif sono incluse nel tuo programma, nel momento in cui comenti la #define iniziale ... le righe NON sono più incluse e non vengono quindi nemmeno compilate.
questo però significa che debbo mettere un if-endif per ogni serial print, giusto ?
se così fosse se metto 300 serial print (su programmi lunghi) non mi passa più !
dura lex, sed lex
Devi metterli per tutte quelle righe che NON vuoi ci siano poi nella versione definitiva ... molto comodo anche per fare versioni diverse dello stesso programma che offrono funzionalità aggiuntive (es. a pagamento )
Guarda che basta farci l'abitudine, i miei programmi sono pieni di quegli #ifdef
infatti l'utilizzo era proprio questo, con aggiunto anche quello di non far vedere ai furbetti il log del monitor seriale e di permettere a me, con un flag "nascosto" nella eeprom, di leggere o no in caso di problemi.
Farò come dici, vediamo se reggo
Grazie come sempre dei preziosi consigli
Con MCU che supportano il printf (ESPxx, STM32, etcetc) mi sono creato questo file che includo dove serve. Immagino che si possa adattare anche senza l'uso di printf.
È solo la versione "evoluta" dello schema di base già scritto da @ORSO2001
Ho preso quanto già presente nel core esp32 per Arduino e semplificato/modificato un po' per le mie esigenze.
@anon4567132 : essendo il tuo primo post nella sezione Italiana del forum, nel rispetto del regolamento di detta sezione (… punto 13, primo capoverso), ti chiedo cortesemente di presentartiIN 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 tutto il su citato REGOLAMENTO ... Grazie.
e se avessi ad esempio una funzione di nome stampa() che viene lanciata dal loop() dove raccolgo tutti i print del programma utile al debug, come potrei disattivarla col tuo sistema?
Io attualmente la commento del tutto assieme alla serial.begin() nel setup().
però compilando il codice assegnando lo stato a DEBUG con la variabile flag non funziona, se invece gli assegno direttamente il valore 0 o 1 allora funziona. Perchè?