Bonjour Christian, bonjour à tous
Merci pour le tuyau! J ai pu reprendre la trame principale en m'en inspirant fortement.
la modification des timing permet en effet d émuler le mode d allumage néon.
Quelques optimisations que j ai cherche à mettre en œuvre, l'air de rien ce n est pas si évident!
plages de temps aléatoires différents entre allumage et extinction, offset, ...
Mon "cahier des charges" me dit de remplacer DELAY par MILLIS afin d être non bloquant dans l exécution.
La définition d une fonction "tube" avec des paramètres ( durée min max, etc.) puis l appel de cette fonction dans la LOOP.
Globalement j arrive à simuler un effet visuel satisfaisant MAIS ( bah oui y a forcement un MAIS !)
Si j essaye de paralléliser l utilisation de cette fonction bah c est la cata! enfin plutôt ca ne produit pas l effet attendu. Des séquences semblent s'arrêter ou ne pas aller au bout.
Pour un seul néon pas de soucis à priori mais si on en met par exemple 3 bah boom c est pas ca!
J explique
On démarre l allumage de 3 néons ( 1 ON et 2 OFF) puis on permute)
Chacun peut s allumer et s éteindre et clignoter selon les paramètres qu' il reçoit.
Jusque la ca va
Mais visuellement il n y pas d alignement ( logique les durée globales sont toutes différentes..)
J ai triché en nommant 3 fonctions " de forme identique" mais idem ca ne passe pas de jeton pour synchro TOP départ ou TOP FIN.
Donc réflexions sur le sujet…
- A jouter un token type bool ci ou la . pour lancer ou pas une séquence et attendre que le GO soit obtenu?
- Ajouter une notion d interupt la aussi qq part!... Mais si on fait une interruption ne vas ton pas "couper une séquence en cours"?...
- une autre piste qui m'échappe encore ...?
- découpage en sous fonctions?
La je sèche encore un peu…
Voila le code en l état ( non encore nettoyé mais qui permet de comprendre le cheminement des étapes passées, et il y en a eu!!)
Des idées? Ce ne sont pas les optimisation qui doivent manquer!
Au final l idée sera de mettre à dispo une petite biblio capable de faire l'effet néon et transposable ( ATTINY, ATMEGA, AVR…)
D'avance merci! pour votre aide à tous.
Laurent