Salve, ho questo codice che nel compilare mi segnala questo "Attenzione":
src\main.cpp: In function 'void loop()':
src\main.cpp:21:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if ((millis() - LED_TIME) > TIME_LOOP)
A parte che la segnalazione è un warning, quindi un avviso, il che non significa necessariamente un errore, quindi il programma compila ugualmente, il motivo te lo dice esplicitamente: stai confrontando 2 tipi di numeri diversi, uno con segno e uno senza, e questo può dar luogo ad errori.
Avresti risolto anche mettendo TIME_LOOP come unsigned int, anzi, visto anche il nome tutto in maiusculo e l'uso meglio un const unsigned int.
Con l'IDE di Arduino per vedere tutti i warnig li devi abilitare esplicitamente nella configurazione.
ok ti ringrazio per la spiegazione..
ultima cosa, in un codice non mio.. mi da l'avviso qui: TCCR0B = TCCR0B & B11111000 | B00000010; // D6 adn D6 PWM frequency of 7812.50 Hz
src\main.cpp: In function 'void setup()':
src\main.cpp:70:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
mi dici come levarlo. Ripeto non è mio .. ma è un esempio che ho trovato per le PET-machine Bottle.
Non saprei nemmeno cosa fa quel : | che gli da noia.
Ma hai dei problemi con l'inglese? Perchè anche in questo caso l'avviso mi sembra esplicito: ti invita a mettere tra parentesi gli operandi dell OR ( | ), dovrebbe essere così:
TCCR0B = (TCCR0B & B11111000) | B00000010;
perchè così è più chiaro come viene fatta l'operazione, cioè la precedenza degli operatori AND ( & ) e ( OR ). In pratica ti fa riflettere se è quello che vuoi veramente fare (e che il compilatore fa di default) o se intendevi fare diversamente, es. un AND del risultato dell OR, che nel caso sarebbe:
Non sono d'accordo ... proprio per il motivo qui sopra descritto da ilguargua ... se un utente non conosce bene le priorità degli operatori binari (e l'OP non conosce neanche l'operatore |) è bene che il compilatore segnali il rischio di cose magari non volute
Se non li conosce non deve usarli. Come vedi l'obbiettivo non è di comprendere ma di spegnere il warning e il miglior modo di farlo è quello di disabilitarli.
Certamente anche a me ha dato fastidio scoprire che i warning erano disabilitati, ma questo perché comprendo la differenza tra un errore e un warning cosa che non è minimamente compresa da un utente arduino comune. Platform.IO non è piattaforma consigliata per gli utenti arduino.
allora il primo codice che ho messo.. lo scritto io. invece il secondo no.
A me piace Platformio IDE perché ho anche le ESP32.
Poi è più veloce ad compilare e caricare .. l'arduino IDE 2.1.1 per me è sempre in beta da quando uscii la prima volta.. A me mi fa i refresh ogni volta anche se vado ad apire etc.. Ed in più per le ESP32 non c'è la data upload .. ed ti consigliano di usare la 1.8.19 ma ormai troppo vecchia ed fa troppi aggiornamenti e si crasha.
Io ho voluto togliere quei avvisi perché un programmatore bravo il codice deve avere 0 avvisi 0 errori ed 0 errori di ortografia.
Per adesso abbiamo risolto il problema solo che mi manca la meccanica da stampare in 3D.
Saluti e buon sabato.
Questa è nuova, divertente, ma chi l'ha scritta?
Comunque come dicevo, se vuoi non fare comparire i warning basta disabilitarli.
Al contrario il buon programmatore abilità i warning, ma se non è capace di interpretare i messaggi allora non è buon programmatore.
Ma Nino non aver paura di tirare un calcio di rigore, non è mica daquestiparticolari che sigiudicaungiocatore, ungiocatore lo vedi dal coraggio, dall'altruismo e dalla fantasia.
Mmmm... hai qualche problema, io, che ci lavoro, uso SOLO la 1.8.19 anche con ESP32 e NON da alcun problema ... sicuro di stare utilizzando la versione corretta del link alle board ESP32? Perché è cambiata da un po' di tempo:
... questa è quella corretta da cui poi installare la versione che vuoi della board ESP32.
Io che su macOS sono fermo, per ragioni di retrocompatibilità, a macOS 10.14.6, uso la versione della board ESP32 2.0.4 che è l'ultima che non richiede una versione di macOS superiore, però considera che loro sono arrivari alla board 2.0.11