Cours:Atmega328p : Différence entre versions
m |
|||
Ligne 1 : | Ligne 1 : | ||
=Interruptions= | =Interruptions= | ||
+ | =={{Bleu|Activer/Désactiver les interruptions}} | ||
+ | |||
+ | Les fonctions suivantes permettent d'activer et désactiver globalement les interruptions : | ||
+ | |||
+ | <source lang=c> | ||
+ | cli(); //désactive toute interruption | ||
+ | sei(); //autorise les interruptions | ||
+ | </source> | ||
=={{Bleu|Interruption externe}}== | =={{Bleu|Interruption externe}}== |
Version du 23 mars 2014 à 21:21
Interruptions
==Activer/Désactiver les interruptions
Les fonctions suivantes permettent d'activer et désactiver globalement les interruptions :
cli(); //désactive toute interruption
sei(); //autorise les interruptions
Interruption externe
Cette partie détaille l'utilisation des interruptions INT0 et INT1, attachées aux pin PD2 et PD3.
Registre EICRA
Le registre EICRA permet de choisir le mode de déclenchement de l'interruption.
EICRA bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
Fonction | ----- | ----- | ----- | ----- | ISC11 | ISC10 | ISC01 | ISC00 |
Valeur initiale | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Le tableau suivant donne la valeur des bits ISCx0 et ISCx1 pour configurer le mode de déclenchement associé à l'interruption INTx :
ISCx1 | ISCx0 | - | 0 | 0 | Un niveau bas sur l'entrée INTx |
---|---|---|---|---|---|
0 | 1 | Un changement d'état sur l'entrée INTx | |||
1 | 0 | Un front descendant sur l'entrée INTx | |||
1 | 1 | Un front montant sur l'entrée INTx |
On souhaite déclencher une interruption sur un changement d'état de la patte PD2 (int0), on configurera le registre EICRA comme suit : EICRA=0x01; // EICRA= 00000001 (2)
|