Device 18F4550
Xtal = 20
'//////////////////////////////////////////////////////////
TXSTA.5=1 ' setting Transmit Enable Bit
RCSTA.7=1
RCSTA.4=1
Hserial_Baud 9600 ' Setting Baud rate
'/////////////////////////////////////////////////////////
Symbol IPEN RCON.7 'enable disbale interrupts peiority
Symbol GIE_GIEH INTCON.7 'GLOBAL Interrupts enable
Symbol PEIE_GIEL INTCON.6 'SIDE DEVICES INTERRUPT ENABLE
Symbol INT0IF INTCON.1 'INT0 FLAG
Symbol RBIE INTCON.3 'Enable PORTB<7:4> Change status interrupt
Symbol RBIP INTCON2.0 'PORTB<7:4> Priority flag
Symbol INTEDG1 INTCON2.5 'Rising/Falling edge Select
Symbol INTEDG2 INTCON2.4 'Rising/Falling edge Select
Symbol INT2IP INTCON3.7 'INT2 PRIORITY
Symbol INT1IP INTCON3.6 'INT1 PRIORITY
Symbol INT2IE INTCON3.4 'INT2 interrupt enable
Symbol INT1IE INTCON3.3 'INT1 interrupt enable
Symbol INT2IF INTCON3.1 'INT2 FLAG
Symbol INT1IF INTCON3.0 'INT1 FLAG
'/////////////////////////////////////////////////////////////
GIE_GIEH=1
PEIE_GIEL=1
IPEN=1
INT1IE=1
INT2IE=1
INTEDG1=1
INTEDG2=1
INT2IP=0
INT1IP=1
On_Interrupt GoTo ISRh:
On_Low_Interrupt GoTo ISRl:
main:
HSerOut ["In MAIN "," INT1 = ",Bin1 INT1IF," INT2 = ",Bin1 INT2IF,13,13]
DelayMS 500
GoTo main
ISRl:
Dim I As Byte
HSerOut ["ENTER ISR LOW:"," INT1 = ",Bin1 INT1IF," INT2 = ",Bin1 INT2IF,13]
If INT2IF =1 Then
For I = 0 To 250
HSerOut ["INT2 has occurred",13]
Next I
INT2IF=0
End If
HSerOut ["EXIT ISR LOW :"," INT1 = ",Bin1 INT1IF," INT2 = ",Bin1 INT2IF,13,13]
Retfie
ISRh:
HSerOut ["ENTER ISR HIG:"," INT1 = ",Bin1 INT1IF," INT2 = ",Bin1 INT2IF,13]
If INT1IF =1 Then
HSerOut ["INT1 has occurred",13]
INT1IF=0
End If
HSerOut ["EXIT ISR HIG :"," INT1 = ",Bin1 INT1IF," INT2 = ",Bin1 INT2IF,13,13]
Retfie Fast