Interruptions



Voici un petit exemple de mise en œuvre d'un interruptions sur la broche P1.3 qui est le bouton sur la carte du LaunchPad.


Montage:



Programme:


#include <msp430.h>



int main(void) {


WDTCTL = WDTPW + WDTHOLD;             // Arrêt du watchDog

P1DIR |= BIT0;                        // Configuration de P1.0 en sortie

P1IE |= BIT3;                         // Activation de l'interruption sur P1.3

P1IES &= ~BIT3;                       // Activation de l'interruption par P1.3 de l'état Haut vers Bas

P1IFG &= ~BIT3;                       // Mise à zéro du drapeau d'interruption P1.3

_BIS_SR( LPM4_bits + GIE);             // Mode LPM4 basse consommation et activation des interruptions

}

// Programme sur interruption

#pragma vector=PORT1_VECTOR

__interrupt void Port_1(void)

{

volatile int i = 0;                   // Initialisation de la variable i

P1OUT ^= 0x01;                        // Mode bascule sur la sortie P1.0 Led Rouge.

for(i = 0; i < 20000; i++);           // Anti-Rebond

P1IFG &= ~BIT3;                       // Mise à zéro du drapeau d'interruption P1.3

}



Téléchargement du programme ici.


Charger le programme.


Faire un clique sur l'insecte.



Puis sur le signe play.



Lors que l'on appuie sur le bouton et que l'on le relâche, on enclenche une interruption qui une fois allume la LED et l'autre fois l'éteint.


Mise à jour 09/08/2014

 




Créé avec HelpNDoc Personal Edition: Créer des documents d'aide CHM facilement