Go Down

Topic: 'class RTC_DS1307' has no member named 'begin' (Read 3479 times) previous topic - next topic

9six4

@ Michele, ho provato,tra l'altro poi ho cancellato tutto ciò che non mi serviva fino a che il secondo codice è divendato identico al primo. Uno compila, l'altro no! Mistero!  :~

@dancol90, ho provato, niente da fare, non compila neanche nello stesso ordine.

Michele Menniti


@ Michele, ho provato,tra l'altro poi ho cancellato tutto ciò che non mi serviva fino a che il secondo codice è divendato identico al primo. Uno compila, l'altro no! Mistero!  :~

Scusami, o non capisco o mi sono spiegato una mrd :smiley-sad-blue:
Io avrei fatto così: parto dall'esempio funzionante e ne elimino un pezzo alla volta, e per ogni pezzo eliminato faccio la compilazione, se la compilazione è ok tolgo un altro pezzo e ripeto la compilazione; se invece la compilazione mi dà errore so che quel pezzo devo lasciarlo, almeno temporaneamente nello sketch.
Alla fine arrivo ad uno sketch dimagrito ma funzionante.
Ora siccome l'esempio non ha tutte le lib e lo shield tuoi, dovresti partire dall'esempio completo, aggiungere subito shield e lib tue e fare una compilazione, perché se già ti dà errore c'è un conflitto, se non te ne dà invece procedi come detto.
La facciamo questa prova? o hai già fatto proprio così e non ho capito niente io?
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

9six4

Michele è proprio quello che ho fatto  :)
Sono partito dall'esempio funzionante ed ho tolto man mano le parti che non mi servivano verificando ogni volta che compilasse. Una volta tolto tutto ciò che non mi serviva ho iniziato ad aggiungere le parti del mio codice che mi servivano, controllando sempre che compilasse. Alla fine ho ottenuto che i due codici fossero completamente identici! Uno compilava uno no, ed il perchè proprio non lo capisco.

Michele Menniti


Michele è proprio quello che ho fatto  :)
Sono partito dall'esempio funzionante ed ho tolto man mano le parti che non mi servivano verificando ogni volta che compilasse. Una volta tolto tutto ciò che non mi serviva ho iniziato ad aggiungere le parti del mio codice che mi servivano, controllando sempre che compilasse. Alla fine ho ottenuto che i due codici fossero completamente identici! Uno compilava uno no, ed il perchè proprio non lo capisco.

Beh, identici no.... altrimenti ti basterebe cancellare quello che non compila ed usare quello che compila no? ;)
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

dancol90

@9six4: ho provato a compilare il tuo sketch, e anche a me da il tuo stesso errore. Mi è bastato cambiare questo:

Code: [Select]
#include "RTClib.h"
#include <SD.h>
#include <Wire.h>
#include <SoftwareSerial.h>
#include <Adafruit_Thermal.h>
#include <LiquidCrystal.h>


in questo:

Code: [Select]
#include <SD.h>
#include <Wire.h>
#include "RTClib.h"
#include <SoftwareSerial.h>
#include <Adafruit_Thermal.h>
#include <LiquidCrystal.h>


che è in definitiva quello che ti dicevo qualche post sopra, e compila senza problemi.

9six4

@dancol90 +100 punti per te!!! Funziona! Però onestamente avevo già provato ad invertire l'ordine come mi avevi detto ma non compilava. Che sia perché forse non avevo salvato o non ero uscito e rientrato dal programma?

dancol90


@dancol90 +100 punti per te!!! Funziona! Però onestamente avevo già provato ad invertire l'ordine come mi avevi detto ma non compilava. Che sia perché forse non avevo salvato o non ero uscito e rientrato dal programma?


Forse avevi cambiato qualcos'altro che ti creava altri problemi...comunque tutto 'sto casino è colpa della libreria che è fatta un po' coi piedi  :~
Aprendo il file RTCLib.h si nota infatti che non hanno messo l'"#include <Arduino.h>". Per questo infatti se veniva inclusa per prima nello sketch non trovava alcun riferimento a tutte le funzioni di Arduino,
generando un sfilza di errori infinita :smiley-yell:

Michele Menniti

@ 9six4: allora hai barato :smiley-sad-blue: dancol te l'ha detto già da ieri che dovevi invertire la posizione degli include e te ne ha santamente spiegato i motivi; diamo per scontato che le cose le provi :smiley-sweat: beh l'importante è che tu abbia risolto....
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

Se vogliamo dirla tutta, nel mio reply #4 ti avevo già detto di controllare se la lib era compatibile con l'IDE che stavi usando.


comunque tutto 'sto casino è colpa della libreria che è fatta un po' coi piedi  :~
Aprendo il file RTCLib.h si nota infatti che non hanno messo l'"#include <Arduino.h>". Per questo infatti se veniva inclusa per prima nello sketch non trovava alcun riferimento a tutte le funzioni di Arduino,
generando un sfilza di errori infinita :smiley-yell:

No, mi spiace: non puoi dire che la lib è fatta male solo perché non ha l'include necessario per funzionare con l'ultima versione di Arduino IDE. Non essere aggiornata non vuol dire essere scritta male.

dancol90


Se vogliamo dirla tutta, nel mio reply #4 ti avevo già detto di controllare se la lib era compatibile con l'IDE che stavi usando.


comunque tutto 'sto casino è colpa della libreria che è fatta un po' coi piedi  :~
Aprendo il file RTCLib.h si nota infatti che non hanno messo l'"#include <Arduino.h>". Per questo infatti se veniva inclusa per prima nello sketch non trovava alcun riferimento a tutte le funzioni di Arduino,
generando un sfilza di errori infinita :smiley-yell:

No, mi spiace: non puoi dire che la lib è fatta male solo perché non ha l'include necessario per funzionare con l'ultima versione di Arduino IDE. Non essere aggiornata non vuol dire essere scritta male.


Nono non è che non è aggiornata...manca proprio l'include a qualsiasi versione delle lib arduino, sia "Arduino.h" che "WProgram.h" !! :P

Michele Menniti

Vale comunque il discorso di Leo; magari la lib è universale e non specifica per Arduino o più semplicemente l'autore, conoscendo la problematica della differenza tra le versioni di IDE, lascia all'utente il compito di mettere l'include che gli serve, o ancora, sapendo che in genere si usa con altre lib, l'avrà omessa pensando che l'include sarebbe stato inserito in qualche altra lib.
Oppure, più semplicemente ancora, se l'è scordato perché lui l'ha scritta usando sempre qualche altra lib che l'include lo aveva.
OK, ma levata questa cosa, che tu hai risolto semplicemente spostando di posizione il richamo, che altri elementi hai per dire che la lib è fatta male? Dà problemi, non funziona, si blocca o cosa?
E' questo che cercava di dirti Leo. ;)
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

dancol90


Vale comunque il discorso di Leo; magari la lib è universale e non specifica per Arduino o più semplicemente l'autore, conoscendo la problematica della differenza tra le versioni di IDE, lascia all'utente il compito di mettere l'include che gli serve, o ancora, sapendo che in genere si usa con altre lib, l'avrà omessa pensando che l'include sarebbe stato inserito in qualche altra lib.
Oppure, più semplicemente ancora, se l'è scordato perché lui l'ha scritta usando sempre qualche altra lib che l'include lo aveva.
OK, ma levata questa cosa, che tu hai risolto semplicemente spostando di posizione il richamo, che altri elementi hai per dire che la lib è fatta male? Dà problemi, non funziona, si blocca o cosa?
E' questo che cercava di dirti Leo. ;)


Scusate è vero, forse ho esagerato! :smiley-red:
L'ho usata qualche volta, e per funzionare funziona (anche se ogni tanto qualche storia l'ha fatta, ma potrebbe essere stato il mio rtc ad avere problemi)...mi sono solo lasciato trasportare...
Scusate ancora :~

Michele Menniti

Ma figurati, qui nessuno deve chiedere niente a nessuno, era solo una semplice puntualizzazione, a favore di chi ha scritto quella lib, operazione tutt'altro che banale, e Leo è uno che sa che vuol dire scrivere una lib, tutto qui. :)
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

dancol90


Ma figurati, qui nessuno deve chiedere niente a nessuno, era solo una semplice puntualizzazione, a favore di chi ha scritto quella lib, operazione tutt'altro che banale, e Leo è uno che sa che vuol dire scrivere una lib, tutto qui. :)


Si infatti, me ne sono reso conto in un secondo momento. Sto scrivendo anch'io delle lib per un mio progetto, ed è vero, non è così scontato, soprattutto se si vuole seguire le linee guida :)

leo72


Go Up