;************************************************************************ ;------------------------------------------------------------------------ ; Verifica il motivo del reset e gestisce l' avvenimento ;------------------------------------------------------------------------ TestRes btfss RCON,POR ; POR ? bra ManPor ; si - gestione POR btfss RCON,BOR ; BOR ? bra ManBbor ; si - gestione BOR btfss RCON,RI ; Istruzione reset ? bra ManSr ; si - gestione btfsc STKPTR,STKFUL ; Stack overfull ? bra manSful ; si - gestione stack over full btfsc STKPTR,STKUNF ; Stack underfull ? bra ManSunf ; si - gestione stack under full btfss RCON,TO ; TO = 0 ? btfss RCON,PD ; si - PD = 1 ? bra ManMmlr ; PD = 0 o TO = 1 -> MCLR ; Reset da Watchdog ; Gestione Reset da Watchdog WdtRes ; inserire qui la gestione bra TestResOut ; setup finale ; Gestione Reset per POR ManPor ; inserire qui la gestione bra TestResOut ; setup finale ; Gestione Reset per BOR ManBbor ; inserire qui la gestione bra TestResOut ; setup finale ; Gestione Reset per istruzione ManSr ; inserire qui la gestione bra TestResOut ; setup finale ; Gestione Reset per Stack overflow ManSful ; inserire qui la gestione bra TestResOut ; setup finale ; Gestione Reset per Stack Underflow ManSunf ; inserire qui la gestione bra TestResOut ; setup finale ; Gestione Reset per MCLR ManMclr ; inserire qui la gestione bra TestResOut ; setup finale ; Setup dei flags per un futuro test TestResOut bsf RCON,POR ; POR = 1 bsf RCON,BOR ; BOR = 1 bsf RCON,RI ; RI = 1 bcf STKPTR,STKFUL ; STKFUL = 0 bcf STKPTR,STKUNF ; STKUNF = 0 clrwdt ; TO e PD = 1 TestResEnd ; ;************************************************************************