Interruptions PIC 18f4550

Fermé
flolarajasse Messages postés 103 Date d'inscription jeudi 12 novembre 2009 Statut Membre Dernière intervention 23 juin 2011 - 13 avril 2010 à 13:03
 Keuronde - 23 avril 2010 à 18:40
Bonjour à tous,
J'ai réalisé un programme qui permet à mon PIC de calculer la durée d'un signal carré 0V-5V entre un front montant et un front descendant.Pour cela, je me suis servit de 2 entrées de mon PIC pour configurer les différentes interruptions ainsi que du Timer0.
Le problème maintenant, c'est que je veux faire la même chose mais avec une seule entrée du PIC.Comment configurer les interruptions(front montant et front descendant)?Quand déclencher le Timer?Quand l'arrêter?
Merci d'avance
@++


A voir également:

1 réponse

Salut,

Je préviens, je n'ai pas une réponse toute faite ! Ce n'est pas testé, ça sort tout juste de la fiche technique.
Dans la "datasheet" du PIC, la section 9.9 te donne les pattes sur lesquelles brancher ton arrivée de signal :

9.9 PORTB Interrupt-on-Change
An input change on PORTB<7:4> sets flag bit, RBIF
(INTCON<0>). The interrupt can be enabled/disabled
by setting/clearing enable bit, RBIE (INTCON<3>).
Interrupt priority for PORTB interrupt-on-change is
determined by the value contained in the interrupt
priority bit, RBIP (INTCON2<0>).

Sur les pattes 4 à 7 du port B.

Les lignes suivant active les interruptions :
INTCONbits.GIE = 1;
INTCONbits.PEIE = 1;

Ensuite, je ne fait que traduire le paragraphe en anglais ci dessus.

Pour activer l'interruption sur changement de l'une des pattes du port B:
INTCONbits.RBIE = 1;

Le choix du niveau de l'interruption se fait avec INTCON2bits.RBIP (mais si c'est ta seule interruption, tu t'en fiches)

Enfin dans l'interruption, vérifier que le bit INTCONbits.RBIF est à 1 => c'est bien une interruption de changement du port B
Remettre INTCONbits.RBIF à 0 dans l'interruption pour la réarmer.

Pour le timer, ouvre-le une fois pour toute. Tu l'initialise au front montant et tu le lis au front descendant.

Tiens moi au courant, je dois réaliser une interruption du même genre...

Keuronde

Ps : Si tu ne les as pas, la fiche technique du PIC (datasheet) et le "MPLAB® C18 C COMPILER LIBRARIES" pourraient grandement t'aider.
0