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).
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:
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
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"
Guarda, ho provato in questo istante "#include <time.h>" e usate alcune funzioni ... NON da alcun errore.
Stessa versione dell'IDE.
Guglielmo
... dubbio ... parliamo di una MCU AVR vero?
Guglielmo
Uso digispark, comunque mi da quest'errore in fase di compilazione.
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
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.
Non va nemmeno con Seven, altro pc e IDE 1.8.9...pazienza
Metti qui il codice che gli do un occhiata ...
Guglielmo
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>
Ma se non lo trova li, lo standard non specifica che lo deve cercare nei posti soliti?
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.
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... ::)
Come ricordavo
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.
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
... 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
... 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
... 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...
... 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... ;)
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
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... ;)
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....
>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
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
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
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
Tastiera non è veloce...
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.
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
La soluzione è nel mio post #24 ;)
Guglielmo
Ok, grazie, poi ti faccio sapere.
@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...
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
L' ho cancellato tramite un programmatore ISP, ma ora l'USB non lo riconosce più...
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
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.
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 ...
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
/*
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.
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