Hello,
Below is my interupt setup code, could you please check if it is correct? By the way, how to jump back to where the PIC was when the interrupt subroutine is done? Thanks
Below is my interupt setup code, could you please check if it is correct? By the way, how to jump back to where the PIC was when the interrupt subroutine is done? Thanks
Code:
#include <p18f4550.h>
#include <usart.h>
#include <delays.h>
void LED1(void)
{
PORTDbits.RD0 = 0;
}
void main (void)
{
ADCON0bits.ADON=0;
ADCON1 = 0x07;
CMCON = 0x07;
//TRISA = 0x00;
TRISD = 0x00;
//PORTDbits.RD0 = 0;
//INTCON: INTERRUPT CONTROL REGISTER
TRISB = 0xFF;
INTCONbits.GIEH = 0; //clear interrupt
INTCONbits.GIEH = 1; //enable interrupt
INTCONbits.INT0IE = 1; //an external interrupt will occur when there is a change state in PORTB pins
//INTCONbits.RBIE = 0;
INTCONbits.RBIE = 1; //enables the RB port change interrupt
INTCONbits.INT0IF == 0;
INTCON2bits.INTEDG0 = 1; //interrupt will be triggered when on rising edge
//INTCONbits.INT0IF = 1;//enable interrupt on RB0
if(INTCONbits.INT0IF == 1)
//if(INTCONbits.RBIF == 1)
{
//INTCONbits.RBIF == 0; //interrupts for INTCON <7:4>
PORTDbits.RD0 = 1;
Delay10KTCYx(100);
PORTDbits.RD0 = 0;
Delay10KTCYx(100);
INTCONbits.INT0IF = 0;
}
else if (INTCONbits.INT0IF = 0)
{
LED1();
}
}//end of main