Tengo un problema al configurar la rutina de servicio de interrupción para PIC24F08KA101.
He inicializado con éxito IE, IF, IP para las interrupciones que necesito usar.
Parte del código que inicializa estos:
void
int_init(void)
{
IEC1bits.INT2IE=1; //Enable Interrupt
IFS1bits.INT2IF=0; //Clear Interrupt Flag
INTCON2bits.INT2EP=0; //activate on positive edge
IPC7bits.INT2IP=3; //Set priority (higher gets executed first)
IEC0bits.T1IE=1; //Enable Interrupt
IFS0bits.T1IF=0; //Clear IF
IPC0bits.T1IP=2; //Set priority
}
Los he comprobado desde el PIC24F08KA101.h. El preescalador de reloj no se muestra en este código.
Tengo un problema al inicializar ISR para INT2 (puerto de interrupción externa 2) y T1 (timer1). Intenté usar este ISR, pero no funciona. Lo obtuve de ejemplos de código .
void __attribute__((interrupt,no_auto_psv)) _INT2Interrupt(void); //Declare
void
__attribute__((interrupt,no_auto_psv)) _INT2Interrupt(void)
{
//Do stuff here
}
Intenté lo mismo con el temporizador1, pero no funciona también.
Yo uso HI-TECH para el compilador dsPIC / PIC24 V9.62 .
INT2 es el puerto seleccionable para el PIC que utilizo.