Red de conocimientos turísticos - Conocimientos sobre calendario chino - Una pregunta sobre el microcontrolador 430 y las declaraciones del programa, por favor ilumíneme.

Una pregunta sobre el microcontrolador 430 y las declaraciones del programa, por favor ilumíneme.

Esta pregunta me resultaba difícil de entender antes. Implica dos conceptos

1. La diferencia básica entre |= y =

2. ¿Cuáles son los diferentes cambios? >

Déjame mostrarte esta respuesta, puede que sea más fácil de entender

1 La diferencia básica entre |= y =

Es igual a borrar El valor original de. Se obtiene UCSCTL4 y se le asigna un nuevo valor, lo que significa que no tiene nada que ver con el valor original.

Pero ¿qué pasa con |=? Está directamente relacionado con el valor original, excepto que el valor del bit correspondiente después del signo igual se promueve a 1. El valor del bit después del signo igual que originalmente era 0 sigue siendo 0 y el valor del bit que originalmente era 1 sigue siendo 1, por ejemplo

UCSCTL4 = 0x1F // (0b1000 1111)

UCSCTL4 = 0x11;

Después de ejecutar la oración anterior, no tiene nada que ver con el valor inicial de 0x1F, y el valor final es 0x11;

UCSCTL4 = 0x8F;

UCSCTL4 = 0x11; //(0b0001 0001)

Después de ejecutar esta oración, está relacionada con el valor inicial 0x1F. En realidad, está realizando operaciones de bits

0b1000 1111

0b0001 0001, llamando al último bit y al quinto y octavo bit desde abajo

- --- -------------

0b1001 1111

El valor final es 0x1F, los dígitos 8.º, 3.º y 2.º originales desde abajo. Los bits en sí son 1 porque trabajan juntos con 0, por lo que aún terminan siendo 1;

2. Lo que sucede con UCSCTL4 en las dos formas anteriores es diferente. Ahora probablemente puedas ver que si (SELA__XT1CLK + SELS__XT1CLK + SELM__XT1CL. ) se considera como 0x11 en nuestro ejemplo anterior, entonces el valor final es 0x11, luego los resultados finales de estas dos operaciones, uno está relacionado con el valor original y el otro no está relacionado con el valor original.

ter>