Bonjour;
j'ai un code qui inclut deux interruption, une sur un timer pour générer un délai et une autre sur le port B (B5).
je sais pas comment mettre en œuvre sa, j'ai toujours utilisés une interruption sur un seul périphérique mais pas deux. alors j'ai besoin d'aide
en fait avec interruption sur le port B, je veux que une fois le portB 5 passe à 0 j'exécute mon programme qui est dans interruption.
voila mon code :
je sais pas si ma méthode est bonne pour les deux interruptions, sinon comment je peux définir deux interruptions.void main(void)
{
T0CON=0xC8;
TMR0L=0xFF;
TRISBbits.TRISB5=1; TRISBbits.TRISB1=0; PORTB=0x00;
TRISCbits.TRISC6=0;
INTCONbits.GIE=1; INTCONbits.PEIE=1;
INTCONbits.TMR0IE=1; INTCONbits.TMR0IF=0; //activer l'intérruption sur le timer0
INTCONbits.RBIE=0; //activer l'interruption sur PORTB
init();
init2();
return ;
}
/*----------------------intéruption sur timer 0--------------*/
#pragma code it=0x08
void saut_sur_spIT(void)
{
_asm goto traiteIT _endasm
}
#pragma interrupt traiteIT
void traiteIT(void)
{ INTCONbits.TMR0IF = 0;
if(Tms) Tms--;
}
void tempo(char ms)
{
Tms=ms; while(Tms);
}
#pragma code
/*----------------------intéruption sur PORTB--------------*/
void saut_sur_spITIO(void)
{
_asm goto traiteITIO _endasm
}
#pragma interrupt traiteITIO
void traiteITIO(void)
{ //executer le programme
}
#pragma code
-----