Bonjour.
Le 22 février 2016, EXYACC a eu le même problème que celui que je rencontre, affichage des deux premiers caractères d'un Serial.println("...") et deadlock.
ma config :
Arduino Uno R3
un capteur qui donne le cap compas (e-boussole)
un écran LCD 16x2
un capteur laser
un servomoteur
une photorésistance
quelques LEDs dont deux gérées par interruption timer.
Le laser est externe
l'écran est alimenté par une autre source.
une interruption externe (0 sur pin 2) se déroulait normalement puis s'est mise à planter.
Il s'agit d'allumer une LED ou de l'éteindre lorsqu'on coupe un faisceau laser.
Avec des sorties sur le moniteur série pour le debug.
j'ai modifié mon code pour allumer la LED pendant 1 seconde en cas de coupure.
surprise : le moniteur n'affiche que les deux premiers caractères du println, et deadlock.
j'ai remplacé le delay() par un comptage de microsecondes, pareil.
J'ai ôté les envois au moniteur série, idem.
Au final, le sous-pgm d'interruption n'accepte d'exécuter qu'une seule instruction.
J'ai positionné un flag et traité le cas dans la loop et ça marche, mais ça ne me convient pas du tout.
La loop a un cycle de plusieurs secondes et je veux une réponse instantanée lors de l'interruption.
J'ai transféré le programme sur arduino nano et c'est pareil.
A l'époque EXYACC n'avait pas eu d'explication à ce qui lui arrivait, on lui avait fait contourner le problème.
J'ai essayé sur l'interruption1 (pin3), même résultat.
J'ai réduit le code qui prenait 80% des possibilités du nano, ça n'a rien changé.
est-ce que ça parle à quelqu'un ? (avant de vous soumettre mon code)