I think something like this would work. (untested)
Make sure the WDT, VREF and anything that draws current is turned off.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>
HTH,
DT
Bookmarks