Sto costruendo un orologio. Voglio impostare l'orologio collegando un cavo Ethernet all'orologio. La maggior parte delle volte l'orologio non viene collegato a Internet.Ethernet avvia blocchi per 60 secondi se non c'è il cavo Ethernet
Ho una scheda Arduino e una Ethernet shield che può connettersi con successo a un server orario e leggere l'ora (consultare il file di esempio UdpNtpClient in Esempi> Ethernet).
Il problema è che per configurare la protezione Ethernet, i blocchi di chiamata Ethernet.begin()
per 60 se lo schermo non è connesso a Internet. Vorrei che l'orologio indicasse l'ora e controllasse periodicamente se fosse collegato un cavo Ethernet e, in tal caso, apportare correzioni al momento. Il più delle volte questo controllo avrà un risultato negativo, tuttavia, quindi non posso avere il blocco dell'orologio per 60 sec ogni volta.
È possibile rilevare se il cavo è collegato in modo più rapido rispetto alla funzione Ethernet.begin()
? È possibile scrivere una soluzione "multithreading", dove Ethernet.begin()
non è bloccante?
Grazie! Penso che questo funzionerà. Qualcuno ha anche detto che posso ottenere il tempo da un'unità GPS, quindi potrei provarlo anche io. – rob
Il GPS suona come una grande idea per me, lo facciamo con il nostro hardware per sincronizzare gli orologi all'inizio. Ricorda che il tempo GPS è un paio di secondi al di fuori del normale orario UTC ... Inoltre, non è necessario collegare il cavo Ethernet. Buona fortuna con il tuo progetto di orologio = D –
Dove trovo quei "post di blog disponibili su Google che coprono questo esatto problema"? – powtac