bonjour,
j'ai une carte picdem de microchip et j'ai un peu de mal pour réaliser sur rb0 une interruption.
Le flag INT0IF n'est jamais positionné quelqu'un a une idée ?
par contre si en mode débuggeur je mets ce flag manuellement à 1 il rentre dans l'interruption.
Code:#include<p18f452.h> unsigned int cpt=0;// compteur d'interruption //sous prog d'int #pragma interrupt it_sur_rb0 void it_sur_rb0(void) { if (INTCONbits.INT0IF) {cpt++; PORTBbits.RB2 = !PORTBbits.RB2; //on inverse rb2 INTCONbits.INT0IF=0;} } //code asm pour gestion des int en c #pragma code vecteur_d_IT=0x08 void une_fonction(void) {_asm goto it_sur_rb0 _endasm} #pragma code void main (void) { TRISBbits.TRISB0=1;//rb0 en entree TRISBbits.TRISB2=0;//rb2 en sortie INTCONbits.INT0IE=1;//activation d'int sur rb0 INTCONbits.GIE=1;//autorisation globale d'interruption while(1);// boucle infinie }
-----