| OR bit a bit
Descripción
Los operadores bit a bit realizan sus cálculos a nivel de bits de las variables. Ellos ayudan a resolver una amplia gama de problemas comunes de programación. Gran parte del material de abajo es de un excelente tutorial sobre matemáticas a nivel de bits que se pueden encontrar aquí.
El operador binario OR en C++ es el símbolo de barra vertical, |. Al igual que el operador &, | opera de manera independiente en cada bit de sus dos expresiones enteras que lo rodean, pero lo que hace es diferente (por supuesto). El operador OR de dos bits es 1 si uno o ambos de los bits de entrada son 1, de lo contrario es 0. En otras palabras:
Ejemplo
Este es un ejemplo de la operación OR utiliza en un fragmento de código C++:
Programa de ejemplo para Arduino Uno
Un trabajo común para los operadores AND y OR bit a bit es lo que los programadores llaman lectura-modificación-escritura en un puerto. En los microcontroladores, un puerto es un número de 8 bits que representa algo acerca de la condición de los pines. Al escribir a un puerto controla todas los pines a la vez.
PORTD es una constante integrada que se refiere a los estados de salida de los pines digitales 0,1,2,3,4,5,6,7. Si hay un 1 en una posición de bit, entonces, el pin está en estado HIGH. (Los pines deben estar configurados como salidas con el comando pinMode() ) Así que si escribimos PORTD = B00110001; hemos llevado los pines 0,4 y 5 a nivel HIGH. Un pequeño problema aquí es que también podemos cambiar el estado de los pines 0 y 1, que son utilizados por el Arduino para comunicaciones serie así que puede haber interferido con la comunicación serie.
Nuestro algoritmo para el programa es:
- Obtener PORTD y limpiar sólo los bits correspondientes a los pines que deseamos controlar (con AND bit a bit).
- Combinar el valor PORTD modificado con el nuevo valor para los pines bajo control (con OR bit a bit).
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |