Re Bonjour Bonjour Denis La Malice
Re bonjour
Alors, alors :
en relisant vos conseils, j'ai supprimé les lignes 51 à 54.
ET LA : magie.
Le test est respecté.
Il me reste à comprendre pourquoi.
Merci pour la piste.
Très cordialement,
bidouileelec
Une piste de solution moins empirique ...
J'ai trouvé ça sur un forum :
Citation:
The ESP8266 is a little different than the standard Arduino boards in that it has the watchdog(WDT) turned on by default. If the watchdog timer isn't periodically reset then it will automatically reset your ESP8266. The watchdog is reset every time loop() runs or you call delay() or yield() but if you have blocking code like the above then the watchdog may time out, resulting in your reset.
Il y a un chien de garde qui doit régulièrement être réinitialisé. Visiblement, il est là pour surveiller qu'il n'y a pas de blocage du code. Il attend donc régulièrement un tour de loop() ou un appel à la fonction delay () ou yield ().
Du coup les 2 solutions proposées : enlever les lignes du else pour redonner la main à loop () ou ajouter un delay (1) dans la boucle while sont de bonnes solutions. Seule l'explication était fantaisiste.
Ça veut-il dire que le code fautif tournait sur un ESP8266 et pas sur un Arduino ?