If you just want to put the PIC to sleep, and wake up on keypress, you don't
need to enable global interrupts.
Here's something to start with.
You take it from here. Pretty much all you need is in the data sheet, and it'sCode:@ DEVICE INTRC_OSC_NOCLKOUT,WDT_OFF,MCLR_OFF DEFINE OSCCAL_1K 1 GIE VAR INTCON.7 ' Global interrupt enable 1=ON, 0=OFF GPIE VAR INTCON.3 ' Port change interrupt enable 1=ON, 0=OFF GPIF VAR INTCON.0 ' Port Change Interrupt Flag bit LED VAR GPIO.0 ' LED output GND---/\/\/\---|<|--GPIO.0 Key VAR GPIO.3 ' Key input (10K pull-up w/switch to ground) X VAR BYTE ' G.P. CMCON = 7 ' All digital GPIO = 0 ' Clear port on boot TRISIO = %00001000 ' GPIO.3 input, rest outputs GIE = 0 ' Disable global ints GPIE = 1 ' Enable port change int IOC.3 = 1 ' Int-on-change for GPIO.3 enabled X = GPIO ' Take a snap shot of port on boot Main: X = 10 REPEAT TOGGLE LED ' Toggle LED X = X - 1 PAUSE 250 UNTIL X = 0 @ SLEEP ' SLEEP until Key is pressed WHILE Key = 0 ' Wait for Key release WEND GPIF = 0 ' Clear port change interrupt flag GOTO Main END
simple to understand if you take your time...;o}




Bookmarks