Bonjour,
J'utilise un PIC18F27J53 sur lequel j'ai besoin d'utiliser l'ECCP1, sur la pin remappable RP0 (voir PPS dans la doc).
Donc j'ai mappé l'ECCP1 sur RP0, et l'ECCP1 doit normalement activer le flag PIR1.CCP1IF lors du passage d'un front montant sur RP0 et donc partir dans sa sous-routine d'interruption.
J'ai testé mon programme via MPLAB SIM, la configuration des registres se fait correctement pour le mapping (RPINR7 = 0x00). J'ai testé les stimulus, quand je force le flag PIR1.CCP1IF, le processus d'interruption fonctionne correctement et je part bien dans ma sous-routine. Le problème survient donc avant.
Mon timer1 compte correctement, mon ECCP1 est bien associée au timer1, les interruptions de l'ECCP1 sont bien autorisées ainsi que les interruptions générales (vérifié dans les registres).
Le programme a été testé en vrai sur PIC et le fonctionne pas non plus.
Voila les configurations que j'ai faites :
Je ne comprend pas d’où peut venir le problème, et ma question est la suivante :Code:PPSInput(PPS_IC1, PPS_RP0); // Set ECCP1 as input at RP0 PPSLock() // Lock pins OpenECapture1(CAPTURE_INT_ON & ECAP_EVERY_RISE_EDGE & ECCP_1_SEL_TMR12); // ECCP1 with rising edge on Timer1 OpenTimer1(TIMER_INT_OFF & T1_8BIT_RW & T1_SOURCE_FOSC_4 & T1_PS_1_1, TIMER_GATE_OFF & TIMER_GATE_INT_OFF); // Configure Timer1 for ECCP1 PIR1bits.CCP1IF = 0; //clear interrupt flag INTCONbits.GIEH = 1; //enable interrupts INTCONbits.GIEL = 1;
Est-il possible de tester le fonctionnement du remapping via MPLAB SIM, dans les limitations du simulateur je n'ai pas vu qu'il était incapable de gérer ça. Si je veux simuler un front montant sur RP0, que dois-je faire ? J'ai déjà essayé avec les stimulus d'envoyer sur RP0, RA0,... (qui sont la même pin en faite).
Existe-t-il par exemple une option pour générer une carte du mappage des pins ?
-----