Bonjour à tous,
J'essaye de coder une interruption externe sur la broche 16 de mon PIC24F08KA102 mais je n'ai pas de résultats...
Etant débutant dans le monde des interruptions, pourriez-vous m'aider s'il vous plaît?
Voici mon code actuel que j'ai écrit en m'inspirant des datasheets :
Pour l'instant mon code se compile mais ne fais rien du tous quand je change l'état de la broche 16 de mon µC.Code:#include <stdio.h> #include <stdlib.h> #include <ports.h> #include <p24F08KA102.h> #include "Compteur.h" #include "Affichage.h" /* * */ //char valeur_digit = 0, numero_afficheur = 0; unsigned char interruptionOK = 0; void __attribute__((__interrupt__)) _INT0Interrupt(void); void IntInit(void); void IntInit(void) { INTCON2 = 0x0000; /*Setup INT0, INT1, INT2, interupt on falling edge*/ Int0_Clear_Intr_Status_Bit; /*Reset INT0 interrupt flag */ EnableINT0; /*Enable INT0 Interrupt Service Routine */ SetPriorityInt0(1); /*set low priority*/ } void __attribute__(( interrupt, no_auto_psv)) _INT0Interrupt(void) { interruptionOK = 1; Int0_Clear_Intr_Status_Bit; } int main(int argc, char** argv) { TRISB = 0x0000; TRISA = 0x0000; IntInit(); while(interruptionOK == 0) { AFFICHEUR_1 = 1; SEGMENT_A = 0; SEGMENT_B = 1; SEGMENT_C = 0; SEGMENT_D = 0; SEGMENT_E = 0; SEGMENT_F = 0; SEGMENT_G = 0; } AFFICHEUR_1 = 1; SEGMENT_A = 1; SEGMENT_B = 1; SEGMENT_C = 1; SEGMENT_D = 1; SEGMENT_E = 1; SEGMENT_F = 0; SEGMENT_G = 0; return (EXIT_SUCCESS); }
Merci d'avance de vos réponses.
Jean.
-----