Arduino Forum

International => Italiano => Software => Topic started by: Stilita on May 12, 2019, 01:05 pm

Title: Libreria time.h (istallazione)
Post by: Stilita on May 12, 2019, 01:05 pm
Ciao, non riesco a trovare la libreria in oggetto, le altre due trovate e istallate
il progetto è questo:

https://www.hackster.io/mushux95/password-usb-key-d10b11

La scarico in zip da GitHub, ma mi da la Time-master.zip
ed in fase d' installazione mi da errore.

Buona domenica (piovosa).
Title: Re: Libreria time.h (istallazione)
Post by: Stilita on May 13, 2019, 01:38 pm
Nel link che ho postato oltre allo schetch c'è anche la libreria time.h, come posso fare a caricarla sull' IDE?

Ho provato a zipparla e caricarla come al solito, ma mi dice che lo zip non contiene libreria... :smiley-confuse:


Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 13, 2019, 01:55 pm
Non devi caricare nulla, la <time.h> (https://www.nongnu.org/avr-libc/user-manual/group__avr__time.html) fa parte di AVR libc (https://www.nongnu.org/avr-libc/user-manual/modules.html), libreria sempre inclusa dall'IDE di Arduino ...
... piuttosto accertati di usare l'ultima versione dell'IDE, perché, nelle precedenti versioni (non ricordo sino a quale), la time.h mi sembra fosse stata esclusa.

Guglielmo
Title: Re: Libreria time.h (istallazione)
Post by: Stilita on May 13, 2019, 01:58 pm

Mi da time.h: No such file or directory, e sotto tutto il report dell'errore:

Arduino:1.8.9 (Windows 10), Scheda:"Digispark (Default - 16.5mhz)"

Opzioni di compilazione cambiate, ricompilo tutto
sketch_may13a:3:18: error: time.h: No such file or directory

#include "time.h"

                 ^

compilation terminated.

exit status 1
time.h: No such file or directory

Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 13, 2019, 02:06 pm
Guarda, ho provato in questo istante "#include <time.h>" e usate alcune funzioni ... NON da alcun errore.

Stessa versione dell'IDE.

Guglielmo
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 13, 2019, 02:11 pm
... dubbio ... parliamo di una MCU AVR vero?

Guglielmo
Title: Re: Libreria time.h (istallazione)
Post by: Stilita on May 13, 2019, 02:48 pm
Uso digispark, comunque mi da quest'errore in fase di compilazione.
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 13, 2019, 02:51 pm
Guarda, per essere sicuro ho provato sia con Arduino UNO che con ATtiny85 e non da alcun errore ...
... controlla bene come hai scritto (vd. mio post #4) perché c'è sicuramente un errore a livello sintattico.

Guglielmo

P.S.: ... ribadisco che sto usando l'IDE 1.8.9
Title: Re: Libreria time.h (istallazione)
Post by: Stilita on May 13, 2019, 03:04 pm
Anch'io uso IDE 1.8.9

ho copiato la tua riga #4, time è diventato rosso, ma mi da lo stesso errore.
Provo con L'IDE che ho su Seven.
Title: Re: Libreria time.h (istallazione)
Post by: Stilita on May 13, 2019, 03:58 pm
Non va nemmeno con Seven, altro pc e IDE 1.8.9...pazienza
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 13, 2019, 04:00 pm
Metti qui il codice che gli do un occhiata ...

Guglielmo
Title: Re: Libreria time.h (istallazione)
Post by: docdoc on May 13, 2019, 04:07 pm
Scusa Guglielmo, ma lui ha scritto:

#include "time.h"

con le virgolette, quindi il file lo cerca nella cartella del progetto!

La time.h standard invece va indicata con i simboli angolari:

#include <time.h>
Title: Re: Libreria time.h (istallazione)
Post by: Standardoil on May 13, 2019, 04:08 pm
Ma se non lo trova li, lo standard non specifica che lo deve cercare nei posti soliti?
Title: Re: Libreria time.h (istallazione)
Post by: docdoc on May 13, 2019, 04:11 pm
Non credo, ma in ogni caso sono andato in quella pagina del sito hackster ma non mi fa vedere il progetto (bisogna iscriversi per accedere...), per cui inizio a pensare che non sia per un AVR, anche perché se dice che la time.h si trova su quel sito, forse si deve includere proprio nel progetto e non installarla tra le librerie standard, deve essere qualcosa di particolare, non saprei.
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 13, 2019, 04:14 pm
Scusa Guglielmo, ma lui ha scritto:

#include "time.h"
... ma prima di rispondere vogliamo leggerli i post precedenti ? ? ? :smiley-evil: :smiley-evil: :smiley-evil:

Mio post #4 e mio post #7 ...  ;D

Guglielmo

P.S.: ... e comunque dovrebbe essere indifferente, solo che con gli " " dovrebbe cercare prima nella cartella di progetto che in quella di sistema mentre con < > solo in quella di sistema... ::)
Title: Re: Libreria time.h (istallazione)
Post by: Standardoil on May 13, 2019, 04:15 pm
Come ricordavo
Title: Re: Libreria time.h (istallazione)
Post by: docdoc on May 13, 2019, 04:18 pm
comunque dovrebbe essere indifferente, solo che con gli " " dovrebbe cercare prima nella cartella di progetto che in quella di sistema mentre con < > solo in quella di sistema...
Si, ma bisogna capire se parla di una time.h specifica del progetto o se sia quella standard AVR. Non sapendo questo, volevo solamente specificare all'OP che deve verificare quale sia la sintassi corretta per QUEL progetto.
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 13, 2019, 04:21 pm
Si, ma bisogna capire se parla di una time.h specifica del progetto o se sia quella standard AVR.
... <time.h> è una ed una sola ... se qualche idiota ha dominato una sua libreria con un nome utilizzato universalmente per una determinata cosa ... meglio buttare il progetto :D

Ma non credo, dovrebbe essere la standard e, comunque, proprio non glie la trova, indipendentemente da quale ::)

Guglielmo
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 13, 2019, 04:24 pm
... comunque ho scaricato il progetto e provo a compilarlo ... non vorrei che il package che fanno installare (digistump) fosse una versione "castrata" (come era in passato, per ragioni di spazio) di AVR libc ::)

Guglielmo
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 13, 2019, 04:32 pm
... come temevo ... il package usa una versione ridotta della AVR libc per cui, manca la "time.h" (http://www.nikonland.eu/forum/public/style_emoticons/default/vomitarella.gif)

Allego la time.h che loro consigliano per il progetto (... è comunque una versione ridotta della time.h).

>Stilita: prendi il file allegato e mettilo nella cartella del tuo progetto. Lascia, come era la #include "time.h" visto che quella di sistema è stata tagliata via e deve prenderla dalla cartella del progetto. :(

Guglielmo
Title: Re: Libreria time.h (istallazione)
Post by: docdoc on May 13, 2019, 04:33 pm
... comunque ho scaricato il progetto e provo a compilarlo ... non vorrei che il package che fanno installare (digistump) fosse una versione "castrata" (come era in passato, per ragioni di spazio) di AVR libc ::)
Se hai scaricato il progetto hai anche visto di quale hardware parlano, puoi illuminarmi, per mia curiosità?.. Nell'unica foto che vedo c'è una specie di chiavettina USB e basta...

Quote
... come temevo ... il package usa una versione ridotta della AVR libc per cui, manca la "time.h" >Stilita: prendi il file allegato e mettilo nella cartella del tuo progetto. lascia, come era la #include "time.h" visto che quella di sistema è stata tagliata via :(
Ah, ecco, mi pareva strano... ;)
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 13, 2019, 04:36 pm
Se hai scaricato il progetto hai anche visto di quale hardware parlano, puoi illuminarmi, per mia curiosità?
... usano QUESTO (http://digistump.com/products/1) prodotto ... un modo semplice di programmare gli ATtiny85 perdendo parte della (gia poca) memoria per metterci dentro un bootloader ed un emulatore software di USB (V-USB (https://www.obdev.at/products/vusb/index.html)) ::)

Mai usati ... gli ATtiny85 li uso con il programmatore ISP e risparmio memoria ...  :smiley-mr-green:

Guglielmo
Title: Re: Libreria time.h (istallazione)
Post by: docdoc on May 13, 2019, 04:38 pm
Bellino sto prodotto... Certo, con gli ATtiny tocca stare attenti all'uso della memoria e del processore, ma per cose minuscole vanno pure bene credo. In questo caso è anche chiaro a questo punto perché sia una versione "limitata" anche di time.h... ;)
Title: Re: Libreria time.h (istallazione)
Post by: Standardoil on May 13, 2019, 04:49 pm
ma scusa,
... emulatore software di USB (V-USB (https://www.obdev.at/products/vusb/index.html)) ::)

non c'era uno settimana scorsa che cercava proprio una cosa del genere?
Che io avevo consigliato di provare ps2....
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 13, 2019, 04:51 pm
>Stilita: Ecco, prendi l'intero progetto allegato (che compila) ... nel loro "package" hanno rimosso parecchie cose standard (anche la <eeprom.h> per ridurre al minimo lo spazio), per cui occorre scaricare e mettere nella cartella tutti i vari files (per di più in versione ridotta).

In ogni caso, io cambierei nome al progetto dato che ... se ben ricordo, "keyboard" è il nome di una libreria per Arduino Leonardo e simili ::)

Guglielmo
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 13, 2019, 04:52 pm
ma scusa,non c'era uno settimana scorsa che cercava proprio una cosa del genere?
Non mi risulti emuli una HID, ma solo la parte di colloquio seriale.

Guglielmo
Title: Re: Libreria time.h (istallazione)
Post by: Standardoil on May 13, 2019, 04:55 pm
Sul sito del progetto hanno anche un adattatore da ps2 a USB http://mg8.org/rump/ (http://mg8.org/rump/) ma non è il solo, hanno anche altre tastiere, mouse, e un fracco di altra roba
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 13, 2019, 04:59 pm
Sul sito del progetto hanno anche ...
... visto ... mai provato, mi fido sempre di quello che diceva Astrobeed ... lo definiva una "cagxxa pazzesca" e quindi l'ho sempre "schifato" :D

Probabilmente, per piccole cose, a bassissima velocità e senza troppe pretese, funziona pure ::)

Guglielmo
Title: Re: Libreria time.h (istallazione)
Post by: Standardoil on May 13, 2019, 05:00 pm
Tastiera non è veloce...
Title: Re: Libreria time.h (istallazione)
Post by: Stilita on May 13, 2019, 08:16 pm
Signori, solo ora ho visto che le risposte sono aumentate, domani provo a fare tutto e vi faccio sapere.

Per ora ho commentato la dichiarazione time.h e ha funzionato generando una password.
Ma vorrei farlo funzionare come da listato, quindi a domani, ciao.
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 13, 2019, 08:25 pm
Signori, solo ora ho visto che le risposte sono aumentate, domani provo a fare tutto e vi faccio sapere.
La soluzione è nel mio post #24 ;)

Guglielmo
Title: Re: Libreria time.h (istallazione)
Post by: Stilita on May 13, 2019, 08:32 pm
La soluzione è nel mio post #24 ;)

Guglielmo
Ok, grazie, poi ti faccio  sapere.
Title: Re: Libreria time.h (istallazione)
Post by: Stilita on May 14, 2019, 08:41 am
@Guglielmo, fatto come al punto #24 e va tutto bene.

Però credo che ora sia bloccato, il Digispark, perchè se provo a caricare su uno schetch vuoto o un blink
lui continua a generarmi password nello schetch e non si lascia riscrivere...
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 14, 2019, 11:25 am
Però credo che ora sia bloccato, il Digispark, perchè se provo a caricare su uno schetch vuoto o un blink
lui continua a generarmi password nello schetch e non si lascia riscrivere...
Su questo non posso aiutarti dato che neanche so cosa faccia quel programma che "compilava" ...
... il dubbio è che, dato che impegna la USB, in qualche modo blocchi la programmazione  :smiley-confuse:

Se trovi la soluzione (eventualmente contattando l'autore) facci sapere ... ::)

Guglielmo
Title: Re: Libreria time.h (istallazione)
Post by: Stilita on May 14, 2019, 11:52 am
L' ho  cancellato tramite un programmatore ISP, ma ora l'USB non lo riconosce più...
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 14, 2019, 12:10 pm
L' ho  cancellato tramite un programmatore ISP, ma ora l'USB non lo riconosce più...
Ovviamente, hai cancellato TUTTO, anche il "bootloader" con la sua interfaccia software USB ...

Devi prendere uno mai usato (o usato con un programma che non blocca la USB), leggere la memoria con il programmatore e copiarla in questo che hai cancellato.

Guglielmo
Title: Re: Libreria time.h (istallazione)
Post by: zoomx on May 17, 2019, 04:39 pm
Sono andato a guardare la pagina del progetto su hackster.io. Li, oltre allo sketch, ci sono proprio le due librerie time.h e eeprom.h, ecco perché nello sketch vengono usate "" invece di <>.  Solo che c'è si la time.h ma manca la time.cpp, per cui non dovrebbe compilare.


... <time.h> è una ed una sola ... se qualche idiota ha dominato una sua libreria con un nome utilizzato universalmente per una determinata cosa ... meglio buttare il progetto :D
La libreria TimeLib di Paul Stoffregen originariamente si chiamava proprio Time e basta, il nome TimeLib è uscito fuori proprio perché andava in conflitto con la time.h di AVR. Nello sketch ai fa uso proprio di questa libreria. Mi chiedo come Paul, che non è certo il primo arrivato, abbia potuto fare un errore del genere.
Di solito, se si trova un riferimento di time.h si intende proprio la libreria di Paul.
Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 17, 2019, 04:46 pm
Solo che c'è si la time.h ma manca la time.cpp, per cui non dovrebbe compilare.
... se avessi letto tutta la discussione avresti visto che ... abbiamo già risolto e che il .h è più che sufficente.

Scarica quanto al mio post #24 e divertiti a compilare :smiley-twist:

Guglielmo

P.S.: Chi ti ha detto che per ogni .h ci deve essere un .cpp? ? ?    Sicuramente NON è elegante ed è sconsigliato, ma si può tranquillamente mettere tutto solo nel .h ...
Title: Re: Libreria time.h (istallazione)
Post by: zoomx on May 17, 2019, 05:21 pm
La libreria di Paul è composta sia dal .h che dal cpp, Se vai a vedere nella pagina su Hackster del progetto nel .h ci sono solo le dichiarazioni delle funzioni ma le funzioni non ci sono.
Se confronti l'intestazione del .h nel progetto su hackster con l'intestazione della Timelib.h della libreria di Paul vedi che sono identiche. C'è anche il vecchio nome time.h

Code: [Select]
/*
  time.h - low level time and date functions
*/

/*
  July 3 2011 - fixed elapsedSecsThisWeek macro (thanks Vincent Valdy for this)
              - fixed  daysToTime_t macro (thanks maniacbug)
*/ 



So che è possibile infilare tutto nel .h, nel progetto in questione c'è la libreria EEPROM.h che non ha bisogno del cpp ma nel post avevo sbagliato e avevo scritto keyboard.h però hai fatto bene a precisarlo.

Title: Re: Libreria time.h (istallazione)
Post by: gpb01 on May 17, 2019, 05:35 pm
Forse stiamo dicendo la stessa cosa ... gli unici files necessari affinché quel codice compili correttamente sono (tutti nella stessa cartella del progetto):

keyboard.ino
time.h
eeprom.h

... e null'altro. La time.h che viene fornita include SOLO un minimo subset di tutte le funzioni della time.h completa (per starci in memoria) ... il .cpp NON serve, è una funzione di libreria ed il linker pesca da li il codice !!!

Guglielmo