Introducción
Estuve trabajando en un proyecto en donde se tenían que encender algunos leds usando un registro de corrimiento 74HC595, y para depurar necesitaba imprimir el byte
completo (incluyendo ceros a la derecha).
Como no encontré una manera correcta de hacerlo (aunque seguramente existe) hice una propia.
Función
Para imprimir una variable de tipo byte, bit por bit, podemos usar la siguiente función:
void imprimirByte(byte b){
for(byte x = 0; x < 8; x++) Serial.print(bitRead(b, x));
}
Lo que hace es imprimir en el monitor serial el byte completo. Como argumento recibe un byte y no regresa nada. Para llamar al procedimiento, podemos hacerlo así:
byte miByte = B00110011;
imprimirByte(miByte);
La salida sería: <em>00110011</em>
Alternativa
También podemos simplemente imprimirlo con Serial.println()
y pasarle como segundo argumento el formato BIN
. Es decir, algo así:
Serial.println(miByte, BIN);
Correcion a el codigo para que se imprima en el mismo orden
void imprimirByte(byte b){
for(byte x = 0; x < 8; x++) Serial.print(bitRead(b, 7-x));
} | aqui|
Gracias por su aporte