Étape 8: Interrupt Service Routine
Quand nous utilisons setIntVector(), nous devons écrire nos rapports de recherche internationale un peu différemment de celle que nous avons écrit pour attachInterrupt().
Tout d’abord, le rapport de recherche internationale doit être défini avant que vous puissiez l’utiliser. Cela signifie mettre dès le départ avant le reste de votre code.
Puis, la déclaration réelle est différente. Cette fois, nous avons spécifier que la fonction que nous sommes déclarant est une interruption, alors qu’auparavant, nous pourrions simplement déclarer toutes les anciennes fonctions.
Enfin, nous avons absolument ont à se souvenir d’utiliser clearIntFlat() à la fin de cette EIS. Normalement, attachInterrupt() s’occupe de l’indicateur de compensation après l’ISR est épuisé, mais nous faisons tout nous-mêmes avec ce code alors il faut effacer l’indicateur nous-même aussi bien.
Si vous ne mettre fin à votre rapport de recherche internationale avec clearIntFlag() (ou du moins, ne l’utilisez pas quelque part dans votre code) alors le drapeau pour cette interruption se déclenchera toujours, et l’interruption se réactive juste après c’est fini, obtenir votre code coincé dans une boucle infinie.