bonjour
je cherche a avoir une interruption haute priorite sur un changement d'etat du port RB4 (passe a letat bas)
voila mes lignes de codes , je voudrais juste activer port RB1 mais cela ne fonctionne pas ..pourquoi ce code ne fonctionne pas?
Merci pour votre aide!
#include <p18F452.h>
#include <usart.h>
#include <delays.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#pragma config WDT = OFF
TRISBbits.TRISB0=1;
TRISBbits.TRISB1=0;
TRISBbits.TRISB3=0;
TRISBbits.TRISB4=1;
TRISBbits.TRISB2=0;
TRISAbits.TRISA4=1;
TRISAbits.TRISA5=1;
TRISAbits.TRISA0=1;
PORTBbits.RB3=0;
PORTAbits.RA0=1;
PORTBbits.RB4=1;
PORTBbits.RB1=0;
PORTAbits.RA4=1;
PORTAbits.RA5=1;
PORTBbits.RB0=1;
PORTBbits.RB2=0;
////////////////////////////////////////////////////////////////////////////////////////////////////////////
#pragma code LowVector=0x18
void atInterruptlow(void)
{
_asm GOTO inter _endasm
}
#pragma code
//////////////////////////////////////BAS LEVEL///////////////////////////////////////////////////////////
#pragma interlow vect18
void inter()
{
INTCONbits.TMR0IF=0;
G = 0;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////HAUT LEVEL///////////////////////////////////////////////////////////
#pragma interlow vect08
void inter2()
{
INTCONbits.RBIF = 0;
PORTBbits.RB1 =1;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
#pragma code HightVector=0x08
void atInterrupthigh(void)
{
_asm GOTO inter2 _endasm
}
#pragma code
///////////////
void main(void)
{
RCONbits.IPEN=1;// Interruption prioritaires
INTCONbits.GIE=1;
INTCON2bits.RBIP=1;
INTCONbits.PEIE = 1;
INTCONbits.RBIE = 1;
INTCONbits.RBIF = 0;
while(1)
{
PORTBbits.RB2 =1 ;
PORTBbits.RB1 =0 ;
}
}
-----