User Tools

Site Tools


avr:utiliser_les_interruptions_externes

Utiliser les interruptions externes

Exemple 1 : Comptabilise les interruptions sur INT0

#include <avr/io.h>
#include <avr/interrupt.h>		//Librairie pour la gestion des interruptions
 
 
ISR(INT0_vect) 				//Vecteur d'interruption de INT0
{
	PORTA++;			//Incrémente PORTA
}
 
int main (void)
{
 
 
	DDRD &=~_BV(2); 		//INT0 en entrée 
	PORTD |= _BV(2); 		//Active la résistance de tirage sur l'entrée INT0
 
	DDRA = 0xFF;			//Port A en sortie
 
	GICR |= _BV(INT0);		//Interruption sur INT0
 
	MCUCR |= _BV(ISC01);		//Interruption sur front  descendant donc dans le registre MCUCR ISC01 = 1 ISC00 =0
					//Vu que MCUCR à comme valeur par defaut 0 on a juste à mettre ISC01 à 1 Cf : datasheet
 
 	sei();				//Active les interruptions
 
	while(1);			//Boncle sans fin 
 
 
	return 1;
}

Discussion

Enter your comment. Wiki syntax is allowed:
IYJFC
 
avr/utiliser_les_interruptions_externes.txt · Last modified: 2011/12/26 19:51 (external edit)