In the code below the mode button is working
but after you select which mode and it gets to the
"on interrupt" it does not stop and wait for a interrupt
if I take out the "on interrupt" and replace it with "if sensor =0"
it seams to work ok. So I'm thinking it is seeing another interrupt.
In the finished program the only interrupt I need to use is portA.2
how do I turn all OTHER interrupts off? Or do you see another problem
thanks
trying to learn

@ DEVICE pic16f630
@ DEVICE pic16f630, INTRC_OSC_NOCLKOUT
@ DEVICE pic16f630, WDT_ON
@ DEVICE pic16f630, MCLR_OFF
@ DEVICE pic16f630, CPD_OFF 'MODE TEST
@ DEVICE pic16f630, BOD_OFF 'BOARD TEST
@ DEVICE pic16f630, PWRT_ON
@ DEVICE pic16f630, PROTECT_OFF
DEFINE OSC 4
Pause 10000 ' Allow pic to Stabilize

CMCON = 7 'COMPARATOR OFF
VRCON = 0 'VOLTAGE REF. DISABLE
TRISA = %00011100 'MAKE A.2, A.3, A.4 INPUTS
TRISC = %00000000 'MAKE ALL PORTC OUTPUTS

OPTION_REG = 0 'ENABLE WEEK PULLUPS (CLEAR RAPU)
WPUA = %00111111 'WEAK PULLUPS ON PORTA
INTCON=$80
IOCA=0



SYMBOL SENSOR = PORTA.2 'TRIGGERING DEVICE PIN 3
SYMBOL MODE= PORTA.4 'MODE BUTTON (FLASH/LONG) PIN 12 INPUT
SYMBOL LED = PORTA.5 'LED POWER UP PIN 2 OUTPUT
SYMBOL RED= PORTC.3 'RED LED PIN 7 OUTPUT
SYMBOL GREEN = PORTC.4 'GREEN LED PIN 6 OUTPUT




MODE=0
SENSOR=0
LED=0
RED=0


LED=1
Pause 4000 'POWER UP OK
LED=0

IF MODE =1 Then GoTo LONG
GoTo SHORT

SHORT:

RED=1
Pause 1000 'FLASH RED LED YOUR IN SHORT MODE
RED= 0
Pause 2000
RED=1
Pause 1000
RED= 0
Pause 3000




MAIN
OPTION_REG=$0
INTCON.4=1 'ENABLE PORTA.2 INTERRUPT
ON INTERRUPT GoTo FLASH
INTCON=$90 'DISABLE ALL INTERRUPTS


FLASH:


LED=1
Pause 1000 'FLASH RED & GREEN LED FOR TESTING FLASH MODE
LED=0
Pause 1000
RED=1
Pause 1000
RED=0
Pause 1000
LED=1
Pause 1000
LED=0
Pause 1000
RED=1
Pause 1000
RED=0
Pause 1000

INTCON.4=0 'DISABLE A.2 INTERRUPT
Disable
Sleep 60
GoTo MAIN

Enable


LONG:
GREEN=1
Pause 1000 'GREEN LED FLASH YOUR IN LONG MODE
GREEN=0
Pause 2000



DOIT:
OPTION_REG=$0
INTCON.4=1 'ENABLE INTERRUPT A.2
ON INTERRUPT GoTo GREENON
INTCON=$80 'DISABLE ALL INTERRUPTS


GREENON:
GREEN=1 'GREEN ON AND LED FLASHING FOR
LED=1 'LONG MODE TESTING
Pause 7000
LED=0
Pause 1000
LED=1
Pause 7000
LED=0
GREEN=0
INTCON.4=0 'DISABLE INTERRUPT A.2
Disable
Sleep 120
GoTo DOIT

Enable