201-Interruption
Interruption
Afin d’agir à un événement extérieur sans nécessiter de scrutation continue, les processeurs possèdent un mécanisme d’interruption. Celui-ci offre la possibilité de modifier le déroulement du programme sur un événement. L’adjonction au processeur d’une ligne d’interruption permet, lorsque qu'elle est active d'activer une procédure appelée Routine d'interruption puis de revenir au programme.
Les interruptions sont issus de périphériques du micro-contrôleur. Exemples: Port entrée, UART....
Les interruptions sont issus de périphériques internes du micro-contrôleur. Exemples: Timer, WatchDog....
Voici un exemple simple avec la LED verte et le bouton de la carte.
Lorsque l'on appuie sur le bouton la Led s'allume pendant 1 seconde.
void setup()
{
pinMode(GREEN_LED, OUTPUT); //Led verte
digitalWrite(GREEN_LED, 0); //Etiendre la LED
pinMode(5, INPUT_PULLUP); //Bouton PUSH2 Entree 5 avec rappel niveau haut
attachInterrupt(5, blink, FALLING); // Activation de l'interruption sur activation du bouton
}
void loop()
{
digitalWrite(GREEN_LED, 0); //LED eteinte
}
void blink()
{
detachInterrupt(5); //suppression de l'interruption en cas de rebond
digitalWrite(GREEN_LED, 1); //LED s'allume
delay(1000); // Temporisation 1 seconde
attachInterrupt(5, blink, FALLING); // activation de l'interruption
}
Téléchargement ici.
Mise à jour 27/06/2014
Créé avec HelpNDoc Personal Edition: Nouvelles et informations sur les outils de logiciels de création d'aide