Hello Hello,

I used Darrel's LCD anypin the other day on a 16F628, worked great, but I am not having any luck today with the interrupts on 16F767. I am probably doing something wrong.
I have checked settings, wiring, re-read darrel's website info, but I am still missing something.
Attached is a small test code. Using external interrupt, switch pins are connected to RB0,
so when interrupt triggered, it should read pins.
I assembled it on EasyPIC4 switches are indeed pulled to ground, I can verify with the LED and also doing a simple Port status display on the LCD, so it definitely the code or the configuration.
Any help, comments, suggestions much appreciated.


Code:
'*** SWITCH / INTERRUPT TEST ***

'Setup for PIC16F767 @ 4Mhz

;Config Register 1
@ __CONFIG    _CONFIG1, _CP_OFF & _CCP2_RC1 & _DEBUG_OFF & _HS_OSC &_VBOR_2_7 & _MCLR_ON & _PWRTE_OFF & _WDT_ON 


;Config Register 2
@ __CONFIG    _CONFIG2, _BORSEN_0 & _IESO_OFF & _FCMEN_OFF

INCLUDE "DT_INTS-14.bas"     ' Base Interrupt System
INCLUDE "ReEnterPBP.bas"     ' Include if using PBP interrupts

DEFINE OSC 4      

OPTION_REG.7 = 1  'Disable PORTB pull ups
ADCON0.0 = 0
ADCON1 = 15       'Disable ALL Analog inputs. ALL PORTS digital

TRISB = %00011111 'PortB 7,6,5 Outputs,

'Set LCD Data Port
DEFINE LCD_DREG PORTC
'Set starting Data Bit (0 or 4) if a 4-bit bus
DEFINE LCD_DBIT	4
'Set LCD Register Select Port
DEFINE LCD_RSREG PORTC
'Set LCD Register Select Bit
DEFINE LCD_RSBIT 0
'Set LCD Enable Port
DEFINE LCD_EREG PORTC
'Set LCD Enable Bit
DEFINE LCD_EBIT 3
'Set LCD Bus Size (4 or 8 bits)
DEFINE LCD_BITS	4
'Set number of lines on LCD
DEFINE LCD_LINES 2

ASM
INT_LIST  macro    ; IntSource,        Label,  Type, ResetFlag?
        INT_Handler    INT_INT,  _Detect,   PBP,  yes
    endm
    INT_CREATE               ; Creates the interrupt processor
ENDASM

@   INT_ENABLE   INT_INT     ; enable external (INT) interrupts


Switch_1 VAR PORTB.1
Switch_2 VAR PORTB.2
Switch_3 VAR PORTB.3
Switch_4 VAR PORTB.4


Main:
Pause 50
GOTO MAIN



'---[INT - interrupt handler]---------------------------------------------------
Detect:
If switch_1 = 1 THEN LCDOUT $FE,$80,"Switch 1" 
If switch_2 = 0 THEN LCDOUT $FE,$80,"Switch 2" 
If switch_3 = 0 THEN LCDOUT $FE,$80,"Switch 3" 
If switch_4 = 0 THEN LCDOUT $FE,$80,"Switch 4"
@ INT_RETURN