Here's what I have so far
Code:'-------------- Reset Type ----------------------------------------------------- ' manage the RCON/STKPTR flags and come up with a sane reset indication ' there will probably be only one bit set, but anything is possible ' especially with regards to the powerdown bit, which gets set by a SLEEP instr. ' ' 0 brownout, 1 poweron, 2 powerdown, 3 wdt timeout ' 4 reset instruction, 5 (unused), 6 stack underflow, 7 stack full ResetTypeMask var byte ResetTypeMask = 0 GetResetType: ' Brown-out Reset if RCON & %11 = %10 then ' BOR 0, POR 1 ResetTypeMask.0 = 1 RCON.0 = 1 ' set BOR endif if RCON.1 = 0 then ' POR 0 ResetTypeMask.1 = 1 RCON.1 = 1 ' set POR endif ' RESET instruction if RCON.4 = 0 then ' RI 0 ResetTypeMask.4 = 1 RCON.4 = 1 ' set RI endif ' WDT reset if RCON.3 = 0 then ' TO 0 ResetTypeMask.3 = 1 ' TO is read-only endif ' Stack Full if STKPTR.7 = 1 then ' STKFUL 1 ResetTypeMask.7 = 1 STKPTR.7 = 0 endif ' Stack Underflow if STKPTR.6 = 1 then ' STKUNF 1 ResetTypeMask.6 = 1 STKPTR.6 = 0 endif ' Powerdown Detection if RCON.2 = 0 then ' PD 0 ResetTypeMask.2 = 1 ' PD is read-only endif




Bookmarks