Untested, but try something like this;
Code:
DEFINE OSC 4
DEFINE OSCCAL_1K 1 ' load factory osccal value
'Register Initializations'
ANSEL = 0 ' all digital
CMCON = %00000111 ' set all pins to digital
TRISIO = %00011111 ' define Inputs and Outputs
GPIO = %00000000 ' set all pin states to off
WPU = %00000000 ' shut off weak pull ups
OPTION_REG = %01010001 ' set the tmr 0 to prescale of 1:4 for 1ms roll over
INTCON = %10100000 ' ENABLE THE TMR0 INTERRUPTS
'Variables'
LED VAR GPIO.5
ROLLOVER_COUNTER VAR WORD
SECONDS VAR BYTE
LED = 0 ' LED off on boot
ON INTERRUPT GOTO ROLL_OVER
MAIN:
IF SECONDS = 5 THEN
ROLLOVER_COUNTER = 0
SECONDS = 0
TOGGLE LED
ENDIF
GOTO MAIN
DISABLE
ROLL_OVER:
ROLLOVER_COUNTER = ROLLOVER_COUNTER + 1 ' INCREMENT ROLL COUNT 1 EVERY 1 ms
IF ROLLOVER_COUNTER >= 1000 THEN 'created to count seconds instead of ms
SECONDS = SECONDS + 1
ROLLOVER_COUNTER = 0
ENDIF
INTCON.2 = 0
RESUME
ENABLE
END
Bookmarks