Errori di compilazione

Ho un display LCD con controller BV4218.
Se provo a compilare questo sketch:

#include <Wire.h>
#include <ByVacLCD.h>

ByVacLCD bv=ByVacLCD(0x21,4,20);

void setup()
{
bv.init();
bv.print("Hello World");
}

void loop()
{
bv.setCursor(1,0);
bv.print(millis());
}

mi ritorna questi errori:

In file included from Prova_BV4218.cpp:2:
/Applications/Arduino.app/Contents/Resources/Java/libraries/ByVacLCD/ByVacLCD.h:73: error: conflicting return type specified for 'virtual void ByVacLCD::write(uint8_t)'
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'
/Applications/Arduino.app/Contents/Resources/Java/libraries/ByVacLCD/ByVacLCD.h:75: error: conflicting return type specified for 'virtual void ByVacLCD::write(const uint8_t*, size_t)'
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:50: error: overriding 'virtual size_t Print::write(const uint8_t*, size_t)'

Come rimedio? Grazie per l'attenzione

Dove hai scaricato l' esempio e la libreria ByVacLCD.h?
Quale Arduino hai e quale versione IDE usi?
Ciao Uwe

/Applications/Arduino.app/Contents/Resources/Java/libraries/ByVacLCD

This doesn't look right to me. Normally, libraries go into sketchbook/libraries, in the user folder.

(edit: scusate, pensavo di essere nel forum internazionale :stuck_out_tongue: )

il problema è che la Witre della libreiria LCD va in conflitto con la Write della libreria Print

probabilmente stai overridando la funzione write della print originale, ma la print originale ritorna size_t, mentre la tua libreria void.

Cambia i retutn della libreria LDC in size_t (probabilmente dovreai aggiungere anche il return, dagli un valore farlocco, per esempio sembra che il secondo parametro di LCD.write faccia proprio al caso tuo :slight_smile:

probabilmente è un errore dato da un update delle librerie arduino... che versione usi?

@tuxduino: are you the creator of the lib? if so the problem is that your lib return value is null, but you are overriding a function that return size_t. Maybe this is because the IDE version that LeopoldGrufus is using has the Print library updated, but you should double check.

@lesto: no, no, è che stavo rispondendo in un altro thread nel forum internazionale, poi sono stato interrotto e sono tornato qui a terminare la risposta lasciata a metà... dimenticandomi che l'OP era in italiano! :slight_smile:

@lesto: la tua diagnosi mi sembra corretta. Forse il problema della cartella in cui ha salvato la libreria non c'entra.

Qui trovi la wiki del BV4208 (http://doc.byvac.com/index.php5?title=Article_BV4208) e qui la libreria aggiornata alla 1.0.1 --> http://www.byvac.com/downloads/BV4208/BV4208.zip

Comunque sul sito (http://doc.byvac.com/index.php5?title=Product_BV4208) rimanda anche alla LiquidCrystal --> https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads

PS: Usa i tag CODE per inglobare il codice. Li richiami col tasto # sopra le faccine. Grazie.

Per Uwe:
Sinceramente non ricordo dove ho trovato la libreria BV4218 anche se ho dovuto fare molte ricerche. Credo in una delle pagine di ByVac…
Lo sketch 'ho trovato a questo indirizzo:
http://john.crouchley.com/blog/archives/264

Per tuxduino:
Non ho precisato che uso un Macintosh e le librerie vengono poste in fase di installazione in: Arduino -> Contents -> Resources -> Java -> Libraries ed è li che ho inserito la libreria bv4218.

Per lesto:
Mi hai fatto venire il mal di testa :wink:
Sono alle primissime armi! …

Grazie a tutti per i vostri interventi… credo che accantonerò questo display!

perchè non usi semplicemente l'ultima versione della libreria come proposto da paolop? funziona sicuro!

Grazie lesto... l'avevo già provata a suo tempo e quando avevo visto ancora errori l'avevo scartata senza cercare di capire :~
Ora ho riprovato ed è bastato estrarre la cartella della libreria I2C_bv dalla cartella bv4208 e metterla cartella Libraries.

Grazie a tutti per i vostri interventi