Estoy construyendo un reloj. Quiero configurar el reloj conectando un cable Ethernet al reloj. La mayoría de las veces el reloj no se conecta a Internet.Ethernet comienza bloques durante 60 segundos si no hay cable Ethernet
Tengo una placa Arduino y una Ethernet shield que pueden conectarse con éxito a un servidor horario y leer la hora (Consulte el archivo de ejemplo UdpNtpClient en Ejemplos> Ethernet).
El problema es que para configurar el blindaje de Ethernet, el Ethernet.begin()
llama bloques para 60 segundos si el blindaje no está conectado a Internet. Me gustaría que el reloj indique la hora y compruebe periódicamente si tiene un cable Ethernet enchufado, y si es así, haga las correcciones oportunas. La mayoría de las veces, este control tendrá un resultado negativo, por lo que no puedo congelar el reloj durante 60 segundos cada vez.
¿Es posible detectar si el cable está conectado de una manera más rápida que la función Ethernet.begin()
? ¿Es posible escribir una solución de "multihilo", donde Ethernet.begin()
es no-bloqueante?
¡Gracias! Creo que esto funcionará Alguien también dijo que puedo obtener el tiempo de una unidad GPS, así que puedo intentarlo también. – rob
El GPS suena como una gran idea para mí, lo hacemos con nuestro hardware para sincronizar los relojes al principio. Solo recuerde que el tiempo del GPS es un par de segundos fuera de la hora UTC normal ... Además, no es necesario enchufar el cable de ethernet. Buena suerte con su proyecto de reloj = D –
¿Dónde encuentro esas "publicaciones de blog disponibles en Google que cubren este problema exacto"? – powtac