domingo, 30 de noviembre de 2014

Bit set, reset, toogle y masking en microcontroladores. Tutorial

Hay diferentes conceptos que hay que tener claro antes de empezar a configurar los registros de un microcontrolador.

Bit set

Para escribir un 1en un determinado bit, usamos la puerta lógica OR. Si anteriormente en este bit del registro teníamos un 1 el 1 se queda y si teníamos un 0 el bit 1 es escrito encima. 

En lenguaje C se usa el símbolo de la barra seguido de un igual:  |=
ejemplo:

ADC12CTL0 |= ADC12ENC;

Bit reset

Queremos escribir un 0, y usamos la puerta lógica AND.
El símbolo en C utilizado es:  &=

ejemplo:
 ADC12CTL0 &= ~ADC12SC

Como se puede ver arriba se ha utilizado el símbolo ~, que es equivalente a una puerta not, (una negación) Y esto es porque queremos escribir un 0.

Bit Toggle

Toggle significa cambiar de un estado al otro. Es decir si un led está encendido apagarlo y si estuviese apagado encenderlo. Para esto se utiliza la puerta OR-exclusiv. 

En lenguaje C el símbolo es: ^= 

Bit masking

Usamos puerta AND para comprobar un determinado bit.