Here's the code that I'm working with.
Code:
@ Device PIC10F222, IOFSCS_8MHZ, MCPU_OFF, WDT_OFF, PROTECT_OFF, MCLR_OFF
OPTION_REG = %11010010 'GPWU_OFF, GPPU_OFF, TOCS_OFF, TOSC_HIGH>LOW, PSA_TMR0, PS_1:8
ADCON0 = 0
TRISIO = 0
GPIO = 0
Time var byte
pause 100
Main:
OSCCAL = 2
GOSUB FADE1A
PAUSE 1000
OSCCAL = 2
GOSUB FADE2A
PAUSE 1000
OSCCAL = 2
GOSUB FADE3A
PAUSE 100
GOTO MAIN
Fade1A:
FOR TIME = 0 TO 250
IF TIME < OSCCAL THEN
IF TIME < 80 THEN
GPIO = 7
ELSE
GPIO = 6
ENDIF
ELSE
GPIO = 7
ENDIF
NEXT TIME
OSCCAL = OSCCAL + 2
IF OSCCAL = 250 THEN
OSCCAL = 2
GOSUB FADE1B
RETURN
ENDIF
GOTO FADE1A
Fade1B:
FOR TIME = 0 TO 250
IF TIME < OSCCAL THEN
GPIO = 7
ELSE
IF TIME > 170 THEN
GPIO = 7
ELSE
GPIO = 6
ENDIF
ENDIF
NEXT TIME
OSCCAL = OSCCAL + 2
IF OSCCAL = 250 THEN
RETURN
ENDIF
GOTO FADE1B
'the other two subroutine blocks are the same as above
'with GPIO = 5 and GPIO = 3
It looks like it might be possible to use POKE and PEEK to access the RAM area that is restricted... I'm going to play around abit, I could get away with 1 more byte var, but I would love to have 2 more!
Bookmarks