Étape 4: Clignotant LED (non-bloquant)
J’ai voulu avoir les LED clignoter à intervalles/vitesses variables pour indiquer les choses. Il est impossible d’utiliser la fonction « delay() » (comme dans le "blink" Arduino exemple), étant donné que le microcontrôleur impossible d’exécuter toute autre chose tout en il est en attente pour le prochain flash. L’approche correcte consiste à prendre note des quand un voyant a été activée/désactivée et puis à chaque itération de la boucle principale, déterminer s’il est temps pour l’activer/désactiver.
Jetez un oeil à l’Arduino « BlinkWithoutDelay » exemple pour avoir une idée de comment elle est effectivement appliquée. J’ai élargi un peu sur ce concept pour permettre à deux fonctions supplémentaires.
- Les LEDS peuvent avoir asymétrique sur/hors fois la LED rouge peut être cligna des yeux un nombre défini de fois et puis s’éteint
- L’ambre LED n’est pas inclus, car c’est une simple marche/arrêt, sans clignoter.
Tout d’abord nous avons mis en place certaines variables
La fonction suivante met à jour les LEDS, elle peut être appelée à chaque itération de la boucle de main(). Lire les commentaires en ligne pour plus de détails.