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
Bookmarks