Encontrar la causa del restablecimiento

Los dispositivos MCU PIC® de línea de base y rango medio de Microchip emplean una función especial que le permite establecer la causa de un reinicio del dispositivo una vez que se haya reiniciado. Esta característica utiliza dos bits en el registro STATUS, es decir, el bit PD, que se configura en el encendido y se borra cuando se invoca SLEEP; y el bit TO, que se borra si se produce un tiempo de espera de vigilancia y provoca un despertador del dispositivo.

Dado que el contenido del registro STATUS se puede perder antes de que su código pueda acceder a él, el compilador C MPLAB® XC8 proporciona una función que puede copiar automáticamente el registro STATUS a una ubicación a la que se puede acceder desde el código C en otro momento. Este paso tiene lugar al comienzo del código de inicio del tiempo de ejecución, por lo que se ejecutará poco después de que se haya realizado el restablecimiento.

Para acceder al contenido guardado del registro STATUS, su código C debe declarar y hacer referencia al símbolo __resetbits (tenga en cuenta los dos guiones bajos principales). También puede declarar y hacer referencia a los símbolos __powerdown y __timeout, que contienen copias de los bits de apagado y apagado, respectivamente. Si es necesario, declare esto de la siguiente manera en su programa.


Esta característica de preservación de registro STATUS se habilita automáticamente una vez que accede a cualquiera de los símbolos anteriores en su proyecto.

Fuente: Finding the Cause of Reset

Comentarios

Entradas más populares de este blog

Resistencias

Guía de introducción de XC8