parrazite:
Par contre que pense tu du fait que mon arduino ne termine pas la loop et revienne au tout debut?
Tu connais un chir qui fait des operations par telephone? ![]()
Ton code est volumineux et pas bien structuré. Si tu le laisses comme ça il faut inclure un débogage serieux sur la console.
En fait tu n'as pas besoin de plusieurs programmes tournant en même temps. Le truc est d'écrire du code non bloquant. Tu ecris ton programme comme un jeu de monopoly a plusieurs joueurs.
Tu fais au début la partie qui doit être rapide (pas grand'chose) et les exceptions de sécurité, ensuite un scheduler qui va lancer tes switch exactement chaque seconde. Dans les switch, tu n'attends jamais! *
Quand c'est pas fini, tu passes ton tour. Comme au monopoly, quand tu es en prison.
Quand une étape est finie tu changes d'étape.
Le switch du programme principal (et éventuellement une action opérateur) sont les seuls à pouvoir modifier la variable étape qui est partagée par les switch display et serial qui sont passifs et ne servent qu'à informer.
Comme tu passes -et repasses- dans tes switch chaque seconde les timers sont très simples a réaliser, tu prends une variable et tu l'incrémentes. Et hop!
- quelques delay() de quelques millisecondes sont permis, si ca évite une étape...