It took me a while to find one the color of my truck..;o)
Experiment with this one too. You can have it wake from sleep without an interrupt handler.
Code:
DEFINE OSC 4
CMCON=%00000111
VRCON = 0
PAUSEus 10
TRISA = %00000110
TRISB = %11110000 ' using upper 4-bits for interrupt
PORTA = %00000000
PORTB = %00000001
OPTION_REG.7 = 0
OPTION_REG.6 = 0
led var portA.3
INTCON = %00001000 ' int-on-change enabled. RBIE=1, RBIF=0
cycle:
HIGH led
pause 100
LOW led
pause 100
@ Sleep ' sleep until button press
WHILE (portB >> 4) !=15 ' wait for button release
PAUSE 10 ' and read port so RBIF can
WEND ' be cleared below.
INTCON.0=0 ' now clear RBIF int flag
goto cycle
END
Global interrupts are disabled. Just enabled the int-on-change by setting RBIE, clearing RBIF, and it sleeps until a button is pressed.
DT_INTs is more fun, but you can wake one up without an interrupt handler.
Bookmarks