Étape 6: Nous interrompre ce programme !
Ils semblent compliqués et on en fait plus et donc par le fait qu’il y a beaucoup d’infos sur ces Arduino implémentée interruptions qui seulement semblent fonctionner sur les broches 1 et 2. J’ai appris sur une interruption de niveau plus profonde appelée une interruption AVR qui peut fonctionner indépendamment de NIP. Ils semblent peu compliqués parce qu’ils sont écrits dans un code de bas niveau qui ressemble à gobbldygook mais j’ai trouvé le code ici dans les exemples de bouclier vague Adafruit.
Vous commencez par « y compris » AVR au début de votre croquis
#include < avr/pgmspace.h > //so on peut programmer en utilisant le code de l’AVR
Ensuite, vous activez l’interruption comme ça...
interruption AVR initialiser
TCCR2A = 0 ;
TCCR2B = 1 << CS22 | 1 << CS21 | 1 << CS20 ;
TIMER2 débordement Interrupt Enable
TIMSK2 | = 1 << TOIE2 ;
(Je sais, à droite?)
Puis vous identifiez une fonction activée par l’interruption
l’interruption qui s’exécute en parallèle avec la fonction loop et la calle de la fonction check_button()
{SIGNAL(TIMER2_OVF_vect)}
check_button() ;
}
Puis vous programmez la fonction
}
void check_button() {}
buttonState = digitalRead(buttonPin) ;
Si (buttonState == HIGH & & previousButtonState == faible) {}
buttonPressed = 1 ; Utilisez cette variable globale pour dire la fonction boucle que la touche
previousButtonState = élevé ; définir l’état de bouton précédente sur l’état actuel de la touche
}
if(ButtonState == Low) {}
buttonPressed = 0 ; dire le funtion boucle que le bouton n’est pas pressé
previousButtonState = bas ; définir le buttonState antérieur sur l’état de bouton curent
}
}
Maintenant quand les évêchés d’interruption que le bouton est enfoncé il allume la musique et les lumières !