Bonjour,
J'ai récupéré et corrigé l'exemple NTP client du bouclier Ethernet Nano. Pas grand chose : utiliser un serveur NTP up to date, et supprimer les fonctions F() des quelques Serial.print.
L'objectif est de mettre à jour une horloge RTC sur le temps NTP. J'y arrive, mais cela ne se fait qu'une seule fois et je ne vois pas comment répéter la màj par exemple toutes les 24 heures.
Je dois avouer que je suis bien loin d'avoir tout compris des routines, surtout que la boucle
void loop () {
// this must be called for ethercard functions to work.
ether.packetLoop(ether.packetReceive());
}
ne boucle pas. Cette ligne doit être obligatoirement là, et pas dans le setup.
Je ne comprends pas.
Pouvez-vous m'aider ?
Merci !
L'appel à ether.packetLoop(ether.packetReceive());dans la loop surveille la communication et déclenche le callback déclaré ici quand la réponse est complète ether.udpServerListenOnPort(&udpReceiveNtpPacket, NTP_LOCALPORT);
Comme on ne re-soumet aucune nouvelle requête, udpReceiveNtpPacket() ne sera appelé qu'une seule fois.