I think something like this would work. (untested)
Code:
<font color="#000000"><b>TMR1IF </b><font color="#008000"><b>VAR </b></font><b>PIR1</b>.<font color="#800000"><b>0
</b></font><font color="#0000FF"><b><i>;Countdown from
</i></b></font><b>Years </b><font color="#008000"><b>CON </b></font><font color="#800000"><b>0
</b></font><b>Days </b><font color="#008000"><b>CON </b></font><font color="#800000"><b>30
</b></font><b>Hours </b><font color="#008000"><b>CON </b></font><font color="#800000"><b>4
</b></font><b>Minutes </b><font color="#008000"><b>CON </b></font><font color="#800000"><b>12
</b></font><b>TheCount </b><font color="#008000"><b>VAR WORD</b></font>[<font color="#800000"><b>2</b></font>]
<font color="#008000"><b>ASM
</b></font><font color="#000080">TotalSeconds = _Years*31536000 + _Days*86400 + _Hours*3600 + _Minutes*60
MOVE?CW TotalSeconds && 0xFFFF, _TheCount
MOVE?CW TotalSeconds >> 16, _TheCount + 2
</font><font color="#008000"><b>ENDASM
</b></font><b>T1CON </b>= <font color="#800000"><b>%00001011 </b></font><font color="#0000FF"><b><i>; T1 OSC ON, Timer ON
</i></b></font><b>Main</b>:
<b>TMR1IF </b>= <font color="#800000"><b>0 </b></font><font color="#0000FF"><b><i>; clear the Timers IF flag
</i></b></font>@ <font color="#008000"><b>SLEEP
</b></font>@ <b>NOP
TheCount </b>= <b>TheCount </b>- <font color="#800000"><b>2 </b></font><font color="#0000FF"><b><i>; subtract 2 seconds
</i></b></font><font color="#008000"><b>IF </b></font><b>TheCount </b>= <font color="#800000"><b>0 </b></font><font color="#008000"><b>THEN </b></font><font color="#0000FF"><b><i>; if low Word is 0
</i></b></font><font color="#008000"><b>IF </b></font><b>TheCount</b>(<font color="#800000"><b>1</b></font>) = <font color="#800000"><b>0 </b></font><font color="#008000"><b>THEN </b></font><font color="#0000FF"><b><i>; check high Word
</i></b></font><font color="#008000"><b>HIGH </b></font><b>PORTB</b>.<font color="#800000"><b>0 </b></font><font color="#0000FF"><b><i>; count complete, turn a pin on
</i></b></font><font color="#008000"><b>STOP
ENDIF
</b></font><b>TheCount</b>(<font color="#800000"><b>1</b></font>) = <b>TheCount</b>(<font color="#800000"><b>1</b></font>) - <font color="#800000"><b>1 </b></font><font color="#0000FF"><b><i>; not finished dec high Word
</i></b></font><font color="#008000"><b>ENDIF
GOTO </b></font><b>Main
</b>
Make sure the WDT, VREF and anything that draws current is turned off.
HTH,
DT
Bookmarks