libreria time.h errore di compilazione

Salve a tutti! ho un quesito da porvi…
ho provato a scaricare la libreria <DS1307RTC.h> e a lanciare uno degli esempi per il settaggio della RTC.
Mi compare questo tipo di errore:

Arduino:1.6.5 (Windows 8.1), Scheda:“Arduino Uno”

Uso la libreria DS1307RTC nella cartella: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\DS1307RTC

Uso la libreria Wire nella cartella: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire

In file included from ds1307_prova.ino:1:0:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\DS1307RTC/DS1307RTC.h:9:18: fatal error: Time.h: No such file or directory
#include <Time.h>
^
compilation terminated.
Errore durante la compilazione

Non ne vengo a capo… premetto che è la prima volta che utilizzo la libreria RTC in un pc con Window8.1

Sapreste consigliarmi?
grazie anticipatamente

Dal messaggio risulta che non viene trovata la libreria time.h Probebilmnte quella libreria DS1307RTC.h vuole l' altra o lo sketch di esempio la ha inclusa. Installa la libreria time.h o cancellala dallo sketch di esempio con tutte le funzioni che fanno riferimento e ella.

Ciao Uwe

uwefed: Dal messaggio risulta che non viene trovata la libreria time.h Probebilmnte quella libreria DS1307RTC.h vuole l' altra o lo sketch di esempio la ha inclusa. Installa la libreria time.h o cancellala dallo sketch di esempio con tutte le funzioni che fanno riferimento e ella.

Ciao Uwe

risolto! installato la libreria funziona correttamente! credevo fosse una libreria già presente nella nuova versione 1.6.5 grazie ancora!

ma la time.h non fa parte dello standard c?

No no

ma la time.h non fa parte dello standard c?

Si normalmente appartiene allo standard C e quindi ci dovrebbe essere anche nella avr-libc, tuttavia non c’è.
In rete c’è qualcuno che ha provato a scrivere time.h per poi inserirla nella avr-libc, ma se non ricordo male c’è la volontà di inserirla in un altra libreria embedded insieme a funzioni di più alto livello.

PS:sono info vecchie di qualche hanno e non seguo più la cosa per mancanza di tempo.

Ciao.

e come no! se la <time.h> non fa piu parte dello standard allora io mi chiamo fuffy!
Quindi non facendo l’orologiaio posso solo dedurre che avr-libc possa almeno aderire al “canonico” standard c89 e quindi deve obbligatoriamente esportare tale libreria che poco centra dall’hardware usato dato che sono solo un insieme di formule matematiche!
Posso solo dedurre che il tuo problema rimanga un semplicissimo errore di path per il linker il quale fatica a trovare la suddetta libreria.
Il problema del porting delle librerie di gcc nn è nuovo ne tantomeno semplice da risolvere.
Se aggiungiamo arduino abbiamo fatto tombola…

@maurotec naturalmente nongnu

n3v3r:
In file included from ds1307_prova.ino:1:0:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\DS1307RTC/DS1307RTC.h:9:18: fatal error: Time.h: No such file or directory
#include <Time.h>
^
compilation terminated.

Se lui cerca Time.h al posto di time.h è normale che non la trovi anche se fosse inserita nelle avr libs. :slight_smile:

... non confondete la "time" (sys/time.h) con la "Time" (Time.h) ... che esiste ed è scaricabile da QUI ;)

Guglielmo

P.S.: Certo che nome peggiore non poteva scegliere ... ::)

Comunque la time.h non c'e' in Arduino. E meno male. Che se ne fa una MCU senza nessun RTC.

nid69ita: Comunque la time.h non c'e' in Arduino. E meno male. Che se ne fa una MCU senza nessun RTC.

Emmm ... http://www.nongnu.org/avr-libc/user-manual/group__avr__time.html ... occorre vedere per quali architetture è implementata ... e se Arduino IDE già implementa la AVRlibc 1.8.1 (... versione in cui è stata introdotta) ::)

Guglielmo

P.S.: Dai un occhiata anche QUI ...

Sorry, non ho capito cosa dicono all’ultimo link. Nella 1.6.5 c’e’ ?
Di base l’IDE non ha in nessuna cartella time.h

nid69ita: Sorry, non ho capito cosa dicono all'ultimo link. Nella 1.6.5 c'e' ?

Mi sa che di base NON è ancora stata aggiornata, ma QUI trovi le ultime versioni MODIFICATE in cui "dovrebbe" essere presente ::)

THESE RELEASES ARE NOT OFFICIAL ARDUINO DISTRIBUTIONS, NOR ARE THEY ENDORSED BY THE OFFICIAL ARDUINO DEVELOPERS.

THESE RELEASES ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Guglielmo

P.S.: Provata quella per OS X ... FUNZIONA :D

La time.h di cui parlavo è proprio quella che ora si trova in avr-libc, evidentemente hanno scelto di inserirla, lasciando al programmatore o RTOS il compito di gestire come meglio crede in timer di sistema.

The implementation aspires to conform with ISO/IEC 9899 (C90). However, due to limitations of the target processor and the nature of its development environment, a practical implementation must of necessity deviate from the standard.

Non so voi, ma la avr-libc per me è scritta bene, tanto da essere un esempio ispiratore, inoltre la volontà di conformarsi agli standard gli fa onore.

Io ho questa versione: avr-libc-1.8.0-9.fc21.noarch e con rpm -ql avr-libc | grep time non compare traccia di time.h, quindi come dice gpb01 per avere time.h bisogna installare almeno la versione 1.8.1.

Ciao.

Come detto nell'altro topic nell'ultimo IDE c'è la avr-libc 1.8.0. :confused:

Time fa confusione anche con la libreria del RTC DS3231 tale da non utilizzare a pieno le sue funzionalità, ma non ho riscontrato alcun problema tra Time e la libreria de DS 1307 che uso con DS3231 rinunciando alle use funzionalità interne. Penso di riadattare lo sketch e librerie per non perdere sia la funzione di Time che di DS3231 sempre se non esista già altra soluzione e migliore della mia. :(.