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