Hi All,

First time using subject PIC and have it running well with all other tasks except no recognition of a button push via IOC.

The relevant section is below, taken from the main code (11k words) to avoid confusion. I've RTFM a number of times
but can't seem to get anywhere. All suggestions welcome.

Cheers,
Bill

Code:
'****************************************************************
'*  Name    : Test_IOCAN.pbp                                    *
'*  Author  : WJS                                               *
'*  Date    : 27/08/2023                                        *
'*  Device  : 16F18426                                          *
'*  Version : 1.0, PBP 3.1.5.4                                  *
'*  Notes   : Test interrupt code for pushbutton on A.2 pulled  *
'*          : up 10k.                                           *
'****************************************************************

' Compiles and runs but no sign of Int. 

 
#CONFIG ; 16F18426
    __config _CONFIG1, _FEXTOSC_OFF & _RSTOSC_HFINT32 & _CLKOUTEN_OFF & _CSWEN_ON & _FCMEN_ON
    __config _CONFIG2, _MCLRE_ON & _PWRTS_PWRT_64 & _LPBOREN_OFF & _BOREN_SBOREN & _BORV_LO & _ZCDDIS_OFF & _PPS1WAY_OFF & _STVREN_ON
    __config _CONFIG3, _WDTCPS_WDTCPS_31 & _WDTE_SWDTEN & _WDTCWS_WDTCWS_7 & _WDTCCS_LFINTOSC
    __config _CONFIG4, _BBSIZE_BB512 & _BBEN_OFF & _SAFEN_OFF & _WRTAPP_OFF & _WRTB_OFF & _WRTC_OFF & _WRTD_OFF & _WRTSAF_OFF & _LVP_OFF
    __config _CONFIG5, _CP_OFF
#ENDCONFIG

' -----[ Initialization 16F18426]--------------------------------------------------------------------------------------- 

    DEFINE  OSC 32              ' Adjust to suit design.

    IOCAF = 0                   ' Clear the Int flag.
    INTCON = %11000000          ' Enable GIE, PEIE, falling edge.
    PIE0 = %00010001            ' Enable IOCIE, INTE bits.
    IOCAP = 0                   ' Disable IOC rising edge A.
    IOCAN = %00000100           ' Enable IOC falling edge A2.

    ADCON0 = 0                  ' No ADC.
    ANSELA = %00000000          ' All Dig.
    ANSELC = %00000000          ' All Dig.

    CM1CON0 = 0                 ' Comparators off.
    FVRCON = %0                 ' Disabled.

    TRISA = %000100             ' A.2 pulled up, pushbutton to ground.
    TRISC = %000000             ' C.5 serout to PC via 1k, C.4 led to ground via 1k.

LED     var PORTC.4             ' Led via 1k to ground.
To_PC   var PORTC.5             ' Serout to PC at 9600, Inv. Idles low, data goes high.      
serI96  con 16468               ' 9600 Baud Inverted.

    Include "MODEDEFS.BAS"      ' Include Shiftin/out modes.
    INCLUDE "DT_INTS-14.bas"    ' 
    INCLUDE "ReEnterPBP.bas"    ; Include if using PBP interrupts.	

ASM
INT_LIST  macro    ; IntSrce,  Label,  Type,  ResetFlag?
        INT_Handler    IOC_INT,  _PB,   PBP,  yes
    endm
    INT_CREATE               ; Creates the interrupt processor
ENDASM

  serout2 to_PC,seri96,[10,13,"I'm Alive!",10,13] ' Confirm.

Begin:
    LED = 1     ' On.
    pause 500   ' 2hz.
    LED = 0     ' Off.
    pause 500   ' 2hz.
    goto begin  ' Cycle.


'---[IOC - interrupt handler]---------------------------------------------------
PB: ' Pushbutton to get here.
 if IOCAF.2 = 1 then        ' Bit 1 (A.2) set.
  serout2 to_PC,seri96,[10,13,"Int!",10,13] ' Testing.
 endif 

  IOCAF = 0                 ' Clear the Int flag.
@ INT_RETURN
  

end