Errore Arduino 1.6.3 con libreria RTClib

Ciao a tutti,
il problema che riscontro è l’incompatibilità, credo, con la libreria Rtclib, utilizzata per leggere la data e ora da un modulo Real-Time-Clock.
Se invece installo la versione 1.5.2r2 di arduino, il problema non esiste. Infatti ho creato uno sketch di domotica in cui utilizzo quel modulo, e adesso che ho eseguito l’aggiornamento dell’IDE appaiono questi errori.

se cerco di compilare questo codice:

#include <Wire.h>
#include <RTClib.h>

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

Appaiono questi errori

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\Wire.cpp: In member function 'void TwoWire::setClock(uint32_t)':
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\Wire.cpp:80:3: error: 'TWBR' was not declared in this scope
   TWBR = ((F_CPU / frequency) - 16) / 2;
   ^
Errore durante la compilazione

Come posso risolvere?
Ho già provato a riscaricare e a aggiungere la libreria più volte, ma niente da fare.

prova a mettere questo header prima di tutti gli altri
#include <avr/io.h>

... magari non c'entra, ma ... sicuro di aver scelto la "board" giusta ? Perché sembra che non riconosca il "TWI Bit Rate Register" (TWBR) ... ::slight_smile:

Guglielmo

prova a mettere questo header prima di tutti gli altri
#include <avr/io.h>

Altri errori:

datecalc.pde:5:1: error: stray '\' in program
datecalc.pde:5:1: error: stray '\' in program
datecalc.pde:5:1: error: stray '\' in program
datecalc.pde:5:1: error: stray '\' in program
datecalc.pde:5:1: error: stray '\' in program
datecalc.pde:5:1: error: stray '\' in program
datecalc.pde:5:1: error: stray '\' in program
datecalc.pde:7:18: error: stray '\' in program
datecalc.pde:7:18: error: stray '\' in program
datecalc.pde:7:18: error: stray '\' in program
datecalc.pde:7:18: error: stray '\' in program
datecalc.pde:7:18: error: stray '\' in program
datecalc.pde:7:18: error: stray '\' in program
datecalc.pde:7:18: error: stray '\' in program
datecalc.pde:9:18: error: stray '\' in program
datecalc.pde:9:18: error: stray '\' in program
datecalc.pde:9:18: error: stray '\' in program
datecalc.pde:9:18: error: stray '\' in program
datecalc.pde:9:18: error: stray '\' in program
datecalc.pde:9:18: error: stray '\' in program
datecalc.pde:9:18: error: stray '\' in program
datecalc.pde:11:18: error: stray '\' in program
datecalc.pde:11:18: error: stray '\' in program
datecalc.pde:11:18: error: stray '\' in program
datecalc.pde:11:18: error: stray '\' in program
datecalc.pde:11:18: error: stray '\' in program
datecalc.pde:11:18: error: stray '\' in program
datecalc.pde:11:18: error: stray '\' in program
datecalc.pde:13:18: error: stray '\' in program
datecalc.pde:13:18: error: stray '\' in program
datecalc.pde:13:18: error: stray '\' in program
datecalc.pde:13:18: error: stray '\' in program
datecalc.pde:13:18: error: stray '\' in program
datecalc.pde:13:18: error: stray '\' in program
datecalc.pde:13:18: error: stray '\' in program
datecalc.pde:15:1: error: stray '\' in program
datecalc.pde:15:1: error: stray '\' in program
datecalc.pde:15:1: error: stray '\' in program
datecalc.pde:15:1: error: stray '\' in program
datecalc.pde:15:1: error: stray '\' in program
datecalc.pde:15:1: error: stray '\' in program
datecalc.pde:15:1: error: stray '\' in program
datecalc.pde:5:1: error: 'In' does not name a type
datecalc.pde:19:32: error: expected unqualified-id before '^' token
Errore durante la compilazione

magari non c’entra, ma … sicuro di aver scelto la “board” giusta ? Perché sembra che non riconosca il “TWI Bit Rate Register” (TWBR)

Gli errori escono se io compilo senza provare l’upload.

Se provo a caricare lo sketch su arduino Uno, ecco gli altri errori:

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:29:0,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:26,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire/Wire.h:26,
                 from C:\Users\Francesco\Documents\Arduino\libraries\RTClib\RTClib.cpp:4:
C:\Users\Francesco\Documents\Arduino\libraries\RTClib\RTClib.cpp:17:31: error: variable 'daysInMonth' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 static uint8_t daysInMonth [] PROGMEM = { 31,28,31,30,31,30,31,31,30,31,30,31 };
                               ^
Errore durante la compilazione

francesco_b:
Gli errori escono se io compilo senza provare l'upload.

Non c'entra nulla. Il compilatore, anche senza upload, DEVE sapere per quale board compilare, passa dei parametri al codice. Molte librerie hanno delle parti "alternative" in base alla board.

Gli errori escono se io cambio l'IDE di arduino, perchè quando avevo la 1.5.6r2 essi non si presentavano.
E comunque ho selezionato Arduino Uno

Dacci il link esatto alla libreria che usi.

francesco_b:
Gli errori escono se io compilo senza provare l'upload.

... :o :o :o ... e che cosa c'entra ? ? ?

E' in fase di "compilazione" che il compilatore ritiene validi alcuni registri piuttosto che altri in funzione della MCU per cui compila !!!

Guglielmo

Libreria RTClib

non includere la wire e compila.

Sempre errori :confused: :confused:

Adesso addirittura, non riconosce l’oggetto Serial.
quando c’è Serial.println(), dice che non riconosce Serial.

Posta di nuovo il codice senza includere wire e il log completo del compilatore.

Allora:

l'errore del "Serial" è dovuto al fatto che ho selezionato il microcontrollore ATtiny, infatti esso non ha i pin TX e RX e di conseguenza nemmeno la seriale.

per quanto riguarda gli altri errori ho risolto reinstallando la versione 1.5.6r2