My project is a 24hr temp logger. Which logs every 15 minutes for the 24hr period. The 15 minute timer is the PBP “SLEEP” command. After 24 hours the application goes to sleep” @sleep”. I want an interrupt on GP2 external interrupt pin to stop the 15min. timer or the “@sleep” and send the program to a PBP routine to RS232 dump to PC. At that time the job is done, unit goes to low power state until power disconnect. I don’t want to use ON INTERRUPT, can’t wait 15min. to print. Once interrupted I don’t need to save any variables, or STATUS or PCLATH (<2k) logging is done, I only need a “goto _printout” placed at location 04. So how do I accomplish that? AND have I missed something of the process?
Code:
@ DEVICE PIC12F683,MCLR_OFF,INTRC_OSC_NOCLKOUT ,WDT_ON,BOD_OFF
@ DEVICE PWRT_ON,FCMEN_OFF,IESO_OFF,PROTECT_ON
OSCCON=%1110000
Define OSC 8
VRCON = 0
ADCON0 = 0
OPTION_REG = %01000000 ;rising edge
ANSEL = 0 ;digital all
CMCON0 = 7
INTCON = %10010000 ;Globle set, GP2 ext int, flg clr
GPIO=0
TRISIO=%00001100 ;GPIO.2 input
;GPIO.2 held low until button push +5v
Blink var GPIO.4
GOTO Start
define INTHAND myint
asm
myint goto _printlog
endasm
Start:
----- LOG DATA for 24hrs
Printlog:
----- RS232 to PC
INTCON = %10010000 ;in the case another print out is needed
@sleep
I’ve written a small INT test program to work this out but I’m not having any luck. On compile I get the error “undefined symbol myint” & “opcode expected instead of myint”
I remove the myint from the asm line and the opcode error goes away. However I think this is needed as it is the ASM label. This ASM method is right out of the 2.60 manual. What is it I’m not getting? Comments Please!
Bookmarks