Leds strip/Projet phares arrière. Problème code pour clignoteur

Le code fonctionne :smiley: :smiley: :smiley: . J'ai juste remplacer "noir" par "vert" dans la fonction "void etapeSuivante(...)" a la condition "on cherche le premier pas allumé et on l'allume".

Mais il y a un petit souci.

La fonction mettreAuRepos(); doit s'exécutée que si le bouton opposé est enfoncé, exemple :

Si bouton gauche enfoncé(le cycle de clignotement gauche commence). Si relaché, le cycle de clignotement continue jusqu'a ce que toutes les leds soient éteintes, puis ont passe a la fonction mettreAuRepos.

Si le cycle de clignotement (bouton gauche) n'est pas terminé et qu'on enfonce le bouton droit, la fonction mettreAuRepos doit s'exécuté. Le cycle de clignotement (bouton gauche) s'interrompt et le cycle de clignotement (bouton droit) doit commencer.

En conclusion, il me faut une fonction etapeSuivante dont son exécution commence au relachement des boutons et se termine quand la derniere leds est éteintes mais il faut que la fonction etapeSuivante soit interrompue si l'autre bouton est enfoncé.
Comment pourrais je faire ?