Bonjour à tous,
voila mon problème :
j'utilise le module input capture du dspic pour détecter des fronts.
voici la configuration :
/* Input Compares */
/* Config : Timer 3 for all, idle mode ON */
IC1CON = 0x0003; // Rising edge only
IC2CON = 0x0003; // Rising edge only
IC7CON = 0x0003; // Rising edge only
IC8CON = 0x0001; // Rising and falling edge
/* Enabling Interrupts for Input Compare */
IEC0bits.IC1IE = 1;
IEC0bits.IC2IE = 1;
IEC1bits.IC7IE = 1;
IEC1bits.IC8IE = 1;
/* Interrupts priority (priority decrease IC8 to IC1) */
IPC0 = 0x0040; // set IC1 priority
IPC1 = 0x0005; // set IC2 priority
IPC4 = 0x0760; // set IC7 and IC8 priority
/* Clear interrupt flags */
IFS0bits.IC1IF = 0;
IFS0bits.IC2IF = 0;
IFS1bits.IC7IF = 0;
IFS1bits.IC8IF = 0;
et une de mes fonctions d'interruption (elles sont toutes les 4 identiques) :
void __attribute__((__no_auto_psv__ )) _IC1Interrupt (void) {
IFS0bits.IC1IF = 0; // Clear flag
TMR3 = 0;
T3CON = 0x8000; // Start Timer 3
}
J'utilise la carte de debug dsPICDEM2 et tout marche très bien en fait !
seulement lorsque je passe le pic sur mon circuit imprimé, les interruptions ne fonctionnent plus.
j'ai vérifié toutes les tensions, les connecteurs, tout est ok.
pour tester clairement le fonctionnement des interruptions, j'ai testé simplement en changeant l'état d'une pin en sortie à chaque fois que j'entre dans l'IT. or cela ne marche pas.
de plus, lors des test sur la carte, le programme marche parfaitement en mode debugger mais pas en mode programmeur.
Y'a t il une configuration qui m'a échapée???
voici aussi les configurations du pic :
_FOSC(CSW_FSCM_OFF & HS); // External Crystal
_FWDT(WDT_OFF); //watch dog off
_FBORPOR(MCLR_DIS & PWRT_OFF);
_FGS(CODE_PROT_OFF);
d'avance merci !
-----