... vedi che succede a mettere inutili cast? Che poi uno si scorda le parentesi ... ![]()
Guglielmo
... vedi che succede a mettere inutili cast? Che poi uno si scorda le parentesi ... ![]()
Guglielmo
Mi ero accorto durante la compilazione...
Ho aggiunto la parentesi ma l'errore rimane.
Se non copi/incolli qui la riga con l'errore, come facciamo a sapere su che riga è?
E fai una cosa, vai nelle "preferenze" del IDE e metti il segno di spunta per avere i "dettagli" sia della compilazione che del caricamento, così ci sono maggiori informazioni.
Guglielmo
Il codice è nella risposta all'amico nid69ita che mi aiutato e non poco a scrivere il codice. Ora controllo l'IDE. Grazie.
Ti ho chiesto il codice ??? ![]()
Ti ho chiesto di copiare/incollare il messaggio di errore con i dettagli ... così si capisce esattamente dove è l'errore. ![]()
Guglielmo
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void setup()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:229:17: error: cannot bind non-const lvalue reference of type 'unsigned char&' to an rvalue of type 'uint8_t {aka unsigned char}'
EEPROM.get(0, (uint8_t)ledIngressi);
^~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:11:0:
C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\EEPROM\src/EEPROM.h:130:31: note: initializing argument 2 of 'T& EEPROMClass::get(int, T&) [with T = unsigned char]'
template< typename T > T &get( int idx, T &t ){
^~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:230:17: error: cannot bind non-const lvalue reference of type 'unsigned char&' to an rvalue of type 'uint8_t {aka unsigned char}'
EEPROM.get(1, (uint8_t)min); // 1 byte non servirebbe cast (uint8_t) male non fa
^~~~~~~~~~~~
In file included from C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:11:0:
C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\EEPROM\src/EEPROM.h:130:31: note: initializing argument 2 of 'T& EEPROMClass::get(int, T&) [with T = unsigned char]'
template< typename T > T &get( int idx, T &t ){
^~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:231:17: error: cannot bind non-const lvalue reference of type 'unsigned int&' to an rvalue of type 'uint16_t {aka unsigned int}'
EEPROM.get(2, (uint16_t)ore); // 2 byte non servirebbe cast, ma male non fa , per sicurezza
^~~~~~~~~~~~~
In file included from C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:11:0:
C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\EEPROM\src/EEPROM.h:130:31: note: initializing argument 2 of 'T& EEPROMClass::get(int, T&) [with T = unsigned int]'
template< typename T > T &get( int idx, T &t ){
^~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void loop()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:490:31: warning: 'bool IRrecv::decode(decode_results*)' is deprecated: Please use IrReceiver.decode() without a parameter and IrReceiver.decodedIRData.<fieldname> . [-Wdeprecated-declarations]
if (irrecv.decode(&results)) { //Decodifica i dati ricevuti e salva i dati in results
^
In file included from c:\Users\Giordano\Documents\Arduino\libraries\IRremote\src/IRremote.hpp:221:0,
from c:\Users\Giordano\Documents\Arduino\libraries\IRremote\src/IRremote.h:10,
from C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:12:
c:\Users\Giordano\Documents\Arduino\libraries\IRremote\src/IRReceive.hpp:1456:6: note: declared here
bool IRrecv::decode(decode_results *aResults) {
^~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void standby()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:838:7: warning: unused variable 'percVolume' [-Wunused-variable]
int percVolume = map(valPot, 0, 1023, 0, 99);
^~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void click1()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:1032:26: error: expected primary-expression before ')' token
EEPROM.put(0, uint8_t) ledIngressi);
^
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void cancMem(void*)':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:1170:27: warning: unused parameter 'offButton1' [-Wunused-parameter]
static void cancMem(void *offButton1) {
^~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void click1()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:1095:19: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In lambda function:
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:160:25: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void loop()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:287:21: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:333:21: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:382:25: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:429:25: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:529:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:579:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:628:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:696:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:751:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:557:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:562:11: note: here
case 0xF9FF00:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:608:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:611:11: note: here
case 0xF9BA45:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:656:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:660:11: note: here
case 0xF951AE:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:665:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:669:11: note: here
case 0xF9EA15:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:673:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:676:11: note: here
case 0xF9609F:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:725:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:730:11: note: here
case 0xF9708F:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:779:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:782:11: note: here
default:
^~~~~~~
Uso la libreria Wire alla versione 1.0 nella cartella: C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\Wire
Uso la libreria RTClib alla versione 2.1.4 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\RTClib
Uso la libreria Adafruit BusIO alla versione 1.16.1 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\Adafruit_BusIO
Uso la libreria U8glib alla versione 1.19.1 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\U8glib
Uso la libreria OneButton alla versione 2.5.0 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\OneButton
Uso la libreria EEPROM alla versione 2.0 nella cartella: C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\EEPROM
Uso la libreria IRremote alla versione 3.5.0 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\IRremote
Uso la libreria i2cdetect alla versione 1.0.0 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\i2cdetect
Uso la libreria U8g2 alla versione 2.34.22 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\U8g2
Uso la libreria SPI alla versione 1.0 nella cartella: C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI
exit status 1
Compilation error: cannot bind non-const lvalue reference of type 'unsigned char&' to an rvalue of type 'uint8_t {aka unsigned char}'
Se leggi attentamente ti accorgi che la maggior pare sono dei "warning", ma l'errore è invece qui:
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void click1()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:1032:26: error: expected primary-expression before ')' token
EEPROM.put(0, uint8_t) ledIngressi);
... sempre parentesi sbagliate ![]()
Guglielmo
Grazie Guglielmo, non sapevo di questa funzione dell'IDE.
Ho lo stesso errore nel metodo
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void setup()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:229:24: error: expected primary-expression before ')' token
EEPROM.get(0, uint8_t) ledIngressi);
^
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:230:24: error: expected primary-expression before ')' token
EEPROM.get(1, uint8_t)min); // 1 byte non servirebbe cast (uint8_t) male non fa
^
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:231:25: error: expected primary-expression before ')' token
EEPROM.get(2, uint16_t)ore); // 2 byte non servirebbe cast, ma male non fa , per sicurezza
^
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void loop()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:490:31: warning: 'bool IRrecv::decode(decode_results*)' is deprecated: Please use IrReceiver.decode() without a parameter and IrReceiver.decodedIRData.<fieldname> . [-Wdeprecated-declarations]
if (irrecv.decode(&results)) { //Decodifica i dati ricevuti e salva i dati in results
^
In file included from c:\Users\Giordano\Documents\Arduino\libraries\IRremote\src/IRremote.hpp:221:0,
from c:\Users\Giordano\Documents\Arduino\libraries\IRremote\src/IRremote.h:10,
from C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:12:
c:\Users\Giordano\Documents\Arduino\libraries\IRremote\src/IRReceive.hpp:1456:6: note: declared here
bool IRrecv::decode(decode_results *aResults) {
^~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void standby()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:838:7: warning: unused variable 'percVolume' [-Wunused-variable]
int percVolume = map(valPot, 0, 1023, 0, 99);
^~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void click1()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:1032:26: error: expected primary-expression before ')' token
EEPROM.put(0, uint8_t) ledIngressi);
^
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void cancMem(void*)':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:1170:27: warning: unused parameter 'offButton1' [-Wunused-parameter]
static void cancMem(void *offButton1) {
^~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void click1()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:1095:19: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In lambda function:
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:160:25: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void loop()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:287:21: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:333:21: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:382:25: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:429:25: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:529:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:579:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:628:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:696:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:751:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:557:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:562:11: note: here
case 0xF9FF00:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:608:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:611:11: note: here
case 0xF9BA45:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:656:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:660:11: note: here
case 0xF951AE:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:665:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:669:11: note: here
case 0xF9EA15:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:673:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:676:11: note: here
case 0xF9609F:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:725:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:730:11: note: here
case 0xF9708F:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:779:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:782:11: note: here
default:
^~~~~~~
Uso la libreria Wire alla versione 1.0 nella cartella: C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\Wire
Uso la libreria RTClib alla versione 2.1.4 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\RTClib
Uso la libreria Adafruit BusIO alla versione 1.16.1 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\Adafruit_BusIO
Uso la libreria U8glib alla versione 1.19.1 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\U8glib
Uso la libreria OneButton alla versione 2.5.0 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\OneButton
Uso la libreria EEPROM alla versione 2.0 nella cartella: C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\EEPROM
Uso la libreria IRremote alla versione 3.5.0 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\IRremote
Uso la libreria i2cdetect alla versione 1.0.0 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\i2cdetect
Uso la libreria U8g2 alla versione 2.34.22 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\U8g2
Uso la libreria SPI alla versione 1.0 nella cartella: C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI
exit status 1
Compilation error: expected primary-expression before ')' token
Qui nel metodo EEPROM.get
Se guardi bene ... vedi che le parentesi sono TUTTE sbagliate ...
Dai retta, risparmiati quei inutili 'cast' così eviti tanti errori di battitura ![]()
Guglielmo
Veramente il codice non è opera mia, io non sarei stato in grado di scriverlo. Ora guardo com'è il metodo EEPROM.get e vedo se riesco a trovare l'inghippo.
Grazie molte.
Giordano
Semplicemente manca la parentesi aperta del 'cast' ...
EEPROM.get ( 2, (uint16_t) ore )
questa ---------^
Guglielmo
Fare il cast con quel metodo è del tutto sbagliato visto che viene usato un template ed il valore viene passato per riferimento.
Semplicemente fai cosi e cancella quel commento sbagliato (non compila, più male di cosi...)
EEPROM.get(0, ledIngressi);
EEPROM.get(1, min);
EEPROM.get(2, ore);
VERO ... anche quello procurava errori ... in questo caso i 'cast' vanno proprio eliminati del tutto !!!
Non avevo notato l'errore ...
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:230:17: error: cannot bind non-const lvalue reference of type 'unsigned char&' to an rvalue of type 'uint8_t {aka unsigned char}'
EEPROM.get(1, (uint8_t)min); // 1 byte non servirebbe cast (uint8_t) male non fa
^~~~~~~~~~~~
Guglielmo
Scusa Guglielmo, è come l'avevo scritta inizialmente. L'errore è questo:
EEPROM.get(0, (uint8_t) ledIngressi);
EEPROM.get(1, (uint8_t) min); // 1 byte non servirebbe cast (uint8_t) male non fa
EEPROM.get(2, (uint16_t) ore); // 2 byte non servirebbe cast, ma male non fa , per sicurezza
tempoTotale = ore * 3600UL + min * 60UL;
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void setup()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:229:17: error: cannot bind non-const lvalue reference of type 'unsigned char&' to an rvalue of type 'uint8_t {aka unsigned char}'
EEPROM.get(0, (uint8_t) ledIngressi);
^~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:11:0:
C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\EEPROM\src/EEPROM.h:130:31: note: initializing argument 2 of 'T& EEPROMClass::get(int, T&) [with T = unsigned char]'
template< typename T > T &get( int idx, T &t ){
^~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:230:17: error: cannot bind non-const lvalue reference of type 'unsigned char&' to an rvalue of type 'uint8_t {aka unsigned char}'
EEPROM.get(1, (uint8_t) min); // 1 byte non servirebbe cast (uint8_t) male non fa
^~~~~~~~~~~~~
In file included from C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:11:0:
C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\EEPROM\src/EEPROM.h:130:31: note: initializing argument 2 of 'T& EEPROMClass::get(int, T&) [with T = unsigned char]'
template< typename T > T &get( int idx, T &t ){
^~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:231:17: error: cannot bind non-const lvalue reference of type 'unsigned int&' to an rvalue of type 'uint16_t {aka unsigned int}'
EEPROM.get(2, (uint16_t) ore); // 2 byte non servirebbe cast, ma male non fa , per sicurezza
^~~~~~~~~~~~~~
In file included from C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:11:0:
C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\EEPROM\src/EEPROM.h:130:31: note: initializing argument 2 of 'T& EEPROMClass::get(int, T&) [with T = unsigned int]'
template< typename T > T &get( int idx, T &t ){
^~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void loop()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:490:31: warning: 'bool IRrecv::decode(decode_results*)' is deprecated: Please use IrReceiver.decode() without a parameter and IrReceiver.decodedIRData.<fieldname> . [-Wdeprecated-declarations]
if (irrecv.decode(&results)) { //Decodifica i dati ricevuti e salva i dati in results
^
In file included from c:\Users\Giordano\Documents\Arduino\libraries\IRremote\src/IRremote.hpp:221:0,
from c:\Users\Giordano\Documents\Arduino\libraries\IRremote\src/IRremote.h:10,
from C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:12:
c:\Users\Giordano\Documents\Arduino\libraries\IRremote\src/IRReceive.hpp:1456:6: note: declared here
bool IRrecv::decode(decode_results *aResults) {
^~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void standby()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:838:7: warning: unused variable 'percVolume' [-Wunused-variable]
int percVolume = map(valPot, 0, 1023, 0, 99);
^~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void click1()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:1032:26: error: expected primary-expression before ')' token
EEPROM.put(0, uint8_t) ledIngressi);
^
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void cancMem(void*)':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:1170:27: warning: unused parameter 'offButton1' [-Wunused-parameter]
static void cancMem(void *offButton1) {
^~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void click1()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:1095:19: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In lambda function:
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:160:25: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino: In function 'void loop()':
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:287:21: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:333:21: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:382:25: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:429:25: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:529:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:579:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:628:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:696:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:751:29: warning: statement will never be executed [-Wswitch-unreachable]
u8x8.setFont(u8x8_font_8x13_1x2_r);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:557:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:562:11: note: here
case 0xF9FF00:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:608:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:611:11: note: here
case 0xF9BA45:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:656:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:660:11: note: here
case 0xF951AE:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:665:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:669:11: note: here
case 0xF9EA15:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:673:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:676:11: note: here
case 0xF9609F:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:725:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:730:11: note: here
case 0xF9708F:
^~~~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:779:26: warning: this statement may fall through [-Wimplicit-fallthrough=]
irrecv.resume();
~~~~~~~~~~~~~^~
C:\Users\Giordano\Documents\Arduino\Prova_firmware_scheda_madre_oled_con_orologio\Prova_firmware_scheda_madre_oled_con_orologio.ino:782:11: note: here
default:
^~~~~~~
Uso la libreria Wire alla versione 1.0 nella cartella: C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\Wire
Uso la libreria RTClib alla versione 2.1.4 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\RTClib
Uso la libreria Adafruit BusIO alla versione 1.16.1 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\Adafruit_BusIO
Uso la libreria U8glib alla versione 1.19.1 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\U8glib
Uso la libreria OneButton alla versione 2.5.0 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\OneButton
Uso la libreria EEPROM alla versione 2.0 nella cartella: C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\EEPROM
Uso la libreria IRremote alla versione 3.5.0 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\IRremote
Uso la libreria i2cdetect alla versione 1.0.0 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\i2cdetect
Uso la libreria U8g2 alla versione 2.34.22 nella cartella: C:\Users\Giordano\Documents\Arduino\libraries\U8g2
Uso la libreria SPI alla versione 1.0 nella cartella: C:\Users\Giordano\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI
exit status 1
Compilation error: cannot bind non-const lvalue reference of type 'unsigned char&' to an rvalue of type 'uint8_t {aka unsigned char}'
Come ti abbiamo appena scritto ... i 'cast' li DEVI proprio eliminare, NON vanno usati con i metodi get e put di EEPROM ...
... anche con le parentesi corrette ![]()
Guglielmo
A beneficio di quelli un po' più smaliziati con C++, nel dettaglio l'errore di compilazione è del tipo:
error: cannot bind non-const lvalue reference of type 'unsigned char&' to an rvalue of type 'uint8_t {aka unsigned char}'
Che significa che l'utente sta cercando di passare un valore "rvalue" ad una funzione che si aspetta un valore "lvalue" proprio perché passato per riferimento.
Un valore lvalue ha un indirizzo di memoria a cui il programma può accedere, mentre un rvalue no (l'indirizzo è accessibile solo dal compilatore).
L'oggetto temporaneo che viene creato facendo il cast è di tipo rvalue e quindi non c'è indirizzo accessibile e la conseguenza è l'errore di compilazione.
Scusatemi quando ho scritto non avevo ancora visto la risposta.
Comunque la cosa NON è affatto chiara nel "reference" della libreria che riporta:
EEPROM.get(address, data);
Parameters
address: the location to read from, starting from 0 (int)
data: the data to read, can be a primitive type (eg. float) or a custom struct
... senza indicare che, in realtà, dietro c'è un 'template' e che 'data' non viene passato per 'value', ma per 'reference' ![]()
La cosa può certamente portare ad errori ...
Guglielmo
Sono d'accordo, però nel log degli errori c'è scritto qual'è la funzione che ha causato l'errore.
Il reference poi lascia il tempo che trova purtroppo...
Mi dirai piuttosto che la maggior parte degli utenti non sa nemmeno cos'è un template o la differenza tra passaggio per riferimento o per valore ![]()
...src/EEPROM.h:130:31: note: initializing argument 2 of 'T& EEPROMClass::get(int, T&) [with T = unsigned char]'
template< typename T > T &get( int idx, T &t ){