errore compilazione "come aggiusto"

ho questo errore nella compilazione e volevo capire di più sul perché:

Arduino:1.8.8 (Windows 7), Scheda:"Arduino/Genuino Uno"

In file included from C:\Users\5900\Desktop\newtimer\newtimer.ino:8:0:

C:\Users\5900\Documents\Arduino\libraries\RotaryEncoder/RotaryEncoder.h:9:7: error: redefinition of 'class RotaryEncoder'

class RotaryEncoder {

^

In file included from C:\Users\5900\Desktop\newtimer\newtimer.ino:3:0:

C:\Users\5900\Documents\Arduino\libraries\RotaryEncoder/RotaryEncoder.h:9:7: error: previous definition of 'class RotaryEncoder'

class RotaryEncoder {

^

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

Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"

1. Nelle preferenze dell'IDE metti il segno di spunta nelle due caselle relative al "output dettagliato", così abbiamo maggiori dettagli nel messaggio di errore.

2. quando nomini una libreria, se non è una libreria standard, metti sempre il link a tale libreria per facilitare chi ti deve aiutare.

3. senza il tuo codice è difficile capire dove è l'errore (...mi raccomando, in conformità al regolamento, punto 7, il codice va racchiuso tra i tag CODE che, in fase di edit, ti inserisce il bottone </> ... primo a sinistra).

Guglielmo

qui il link alla libreria

gli errori con i dettagli

sono nel txt allegato

Nuovo documento di testo (2).txt (10.7 KB)

Manca il punto 3. ... comunque sembra che la libreria sia inclusa più di una volta ... ::slight_smile:

Guglielmo

Sembra che ci sia lo stesso #include alle righe 3 e 8.

allora ..... ho provato a modificare qualcosa a "caso" (modificare a caso è sempre terribile :disappointed_relieved: ) nella libreria originale
tipo levare tutto il "commento pieno zeppo di asterischi" all' inizio del file RotaryEncoder.h
gli errori/avvisi si sono ridotti

anche caricando il semplice sketch incluso nella libreria da avvisi/errori

comunque cosi ho risolto

elrospo:
allora ..... ho provato a modificare qualcosa a "caso" (modificare a caso è sempre terribile :disappointed_relieved: ) nella libreria originale
tipo levare tutto il "commento pieno zeppo di asterischi" all' inizio del file RotaryEncoder.h
gli errori/avvisi si sono ridotti

Scusa ma non ha alcun senso questa cosa.
I commenti sono commenti, non influenzano in alcun modo la compilazione, e le librerie generalmente NON vanno modificate tantomeno "a caso"....
Quindi sono contento che tu dica di aver risolto, ma se hai fatto quello che dici di aver fatto ne dubito fortemente. Tu hai incluso più volte la stessa libreria, come ti hanno già detto, devi controllare questo nel tuo codice. E se neanche gli esempi in dotazione si compilano senza errori significa che hai qualche casino nelle librerie (rimuovi quella libreria e reinstallala, devi averne solo UNA copia su tutto il disco).

docdoc:
Scusa ma non ha alcun senso questa cosa.
I commenti sono commenti, non influenzano in alcun modo la compilazione, e le librerie generalmente NON vanno modificate tantomeno "a caso"....
Quindi sono contento che tu dica di aver risolto, ma se hai fatto quello che dici di aver fatto ne dubito fortemente. Tu hai incluso più volte la stessa libreria, come ti hanno già detto, devi controllare questo nel tuo codice. E se neanche gli esempi in dotazione si compilano senza errori significa che hai qualche casino nelle librerie (rimuovi quella libreria e reinstallala, devi averne solo UNA copia su tutto il disco).

beh... che vuoi che dica :confused: prova te a mettere la libreria originale e a compilare l'esempio che è incluso
non si "compila proprio liscio" di chi è la colpa non si sa,
sicuramente andrebbe aggiornata e probabilmente quando è stata fatta andava bene e non dava warning
anche se non vedo il motivo di inserire dei "commenti" nel file .h tipo....... (o almeno non scritti così :o )

/***********************************
Written by Joshua Oster-Morris/craftycoder.
BSD license, check license.txt for more information
All text above must be included in any redistribution

I strongly urge hardware debouncing with rotary encoders.
A 10000pF cap between both the A and B pins to GND (the C pin)
is suffcient to offer very consistent reads.

ENC_A is the arduino pin the A pin of the encoder is plugged in to.
ENC_B is the arduino pin the B pin of the encoder is plugged in to.
multiplier is what is sounds like
stepSize is used to find the multiplicand
pauseLength is the maximum amount of time in microseconds a user can pause before the number of steps resets
Equations of interest.
multiplicand = (consecutive steps in one direction with less than a pauseLength between them)/stepSize
direction = 1 for clockwise or -1 for counterclockwise
readEncoder() returns multiplicandxmultiplierxdirection
****************************************/

comunque adesso sembra non da troppi errori/warning e se ne trovo una libreria simile più "fresca" la sostituisco

stranezza incompressibile (per me) la prima volta che verifico lo sketch da warning

C:\Users\5900\Documents\Arduino\libraries\arduino-rotary-encoder-with-velocity-master\RotaryEncoder.cpp: In member function 'int RotaryEncoder::readEncoder()':

C:\Users\5900\Documents\Arduino\libraries\arduino-rotary-encoder-with-velocity-master\RotaryEncoder.cpp:37:44: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

if((micros() - _lastENCreadTime) < _pauseLength) {

se rifaccio la verifica non lo da più