Me preguntaba si alguien podría ayudarme a resolver un problema, porque soy muy nuevo en esto y me dieron el código de un antiguo programador para trabajar.
Estoy tratando de averiguar el valor de 0x8008 & ~ (1 < < 15) .
Tal vez alguien también podría decirme cuál es el propósito de escribir un valor de esta manera?
Código:
// STSEL 1; IREN disabled; PDSEL 8N; UARTEN enabled; RTSMD disabled; USIDL disabled; WAKE disabled; ABAUD disabled; LPBACK disabled; BRGH enabled; URXINV disabled; UEN TX_RX;
U1MODE = (0x8008 & ~(1<<15)); // disabling UARTEN bit
Por lo que entiendo:
0x8008 = 1000000000001000
1 < < 15 = 1000000000000000
~ (1 < < 15) = 0111111111111111
entonces: 1000000000001000 & 0111111111111111 = 00000000000001000
Esta respuesta me molesta, porque a juzgar por eso, UART está deshabilitado, lo que definitivamente no es cierto.
hoja de datos: enlace
Hice algunas excavaciones en el código y encontré esta línea:
U1MODEbits.UARTEN = 1;
Aún no entiendes cuál es el propósito de deshabilitar el UART primero y luego habilitarlo.