Bonjour à tous,
J'ai aussi posté dans la partie électronique mais je pense aussi que c'est de la programmation donc je poste aussi mon problème, si cela pose un soucis pour les modérateurs alors je supprimerai l'un de mes deux postes
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.
-----