Estoy intentando aprender sobre el periférico Watch Dog Timer de MSP430FR6989 ( enlace a MSP430 ).
Es periférico Watch Watch Timer WDT_A tiene un registro de control de 16 bits (WDTCTL), para realizar una operación de escritura, necesitamos cargar 0x5A en su byte superior.
Si queremos realizar una operación de lectura, leemos 0x69 al byte superior.
( Guía del usuario página 635)
los accesos de escritura deben incluir la contraseña de escritura 05Ah en el byte superior. Una escritura a WDTCTL con cualquier valor distinto de 05Ah en el byte superior es una violación de la contraseña y provoca un reinicio del sistema PUC, independientemente de modo temporizador. Cualquier lectura de WDTCTL lee 069h en el byte superior.
Este es mi código:
#include <msp430.h>
int main(void)
{
WDTCTL = 0x5A80;
PM5CTL0 = 0xFFFE;//Line A
//rest of the code
while(1);
return 0;
}
Cuando, lo construyo y lo depuro, y el depurador alcanza la línea A, esperaba WDTCTL = 0x5A80
, no WDTCTL = 0x6980
(imagen de abajo).
Entiendo, si tengo una declaración como if(WDTCTL == number)
, encontraríamos WDTCTL = 0x69XX
, pero ¿por qué veo 0x6980
en la ventana de Vigilancia del Registro, cuando acabo de asignarle 0x5A80
?