Keep in mind that any changes on PORTB.6 or 7 will also trigger an interrupt. It's best to Not Use 6 and 7 for anything else.
Code:
Old_Bits VAR BYTE
New_Bits VAR BYTE
INCLUDE "DT_INTS-18.bas" ' Base Interrupt System
INCLUDE "ReEnterPBP-18.bas" ' Include if using PBP interrupts
ASM
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
INT_Handler RBC_INT, _RBC_handler, PBP, yes
endm
INT_CREATE ; Creates the interrupt processor
ENDASM
Old_Bits = PORTB
@ INT_ENABLE RBC_INT ;RB Port Change Interrupt
Main:
Pause 1000
GOTO Main
'---[RBC - interrupt handler]---------------------------------------------------
RBC_handler:
New_Bits = PORTB
IF (New_Bits.4 <> Old_Bits.4) THEN
; -- PORTB.4 has changed --
ENDIF
IF (New_Bits.5 <> Old_Bits.5) THEN
; -- PORTB.5 has changed --
ENDIF
Old_Bits = New_Bits
@ INT_RETURN
Bookmarks