Buenas de nuevo, tras tomar algunos apuntes de tu explicación 10/10 ya entiendo como haces para obtener los números y como funciona el tema del desplazamiento de los bits, me había liado un poco porque cuando lo visualizaba en los leds no me salían las cuentas pensando que habías mantenido la separación y que los que solo iban desde 0-5 se mantenian con tres leds, pero ahora ya entiendo esa parte perfectamente, ahora me gustaria si pudieses que me explicases las dos ultimas funciones que creastes, es decir
for (z = 8388608; z > 0UL; z >>= 1UL) {
Serial.print(((tmp & z) == z)? '1' : '0');
if ((tmp & z) == z)
strip.setPixelColor(cont,100,0,0); // 1
else
strip.setPixelColor(cont,255,255,255); // 0
cont++;
}
Serial.println(" ");
strip.show();
}
char *byte_to_binary(byte x)
{
byte x1 = x / 10;
byte x2 = x % 10;
x = x1 << 4 | x2;
static char b[9];
b[0] = '\0';
int z;
for (z = 128; z > 0; z >>= 1) {
strcat(b, ((x & z) == z) ? "1" : "0");
}
//Serial.print(b);
//Serial.println(" ");
return b;
Siento ser tan pesado y preguntarlo todo pero aunque intento ver que hace cada parte analizando cada linea no soy capaz de ver en conjunto que es lo que hacen, si me pudieses explicar esta parte como la anterior lo agradecería aunque entiendo que sea una pesadez por lo que cualquier explicación breve o extensa creo que me servirá de mucha ayuda.
Por cierto estoy a la espera de que llegue a la empresa donde realizo el proyecto de un RTC ya que haré por impresion 3D el soporte y creare la placa por Altium, no se si el uso de la RTC facilitaria el programa o lo complicaría mas, pero aun quedan 2 semanas para que llegue y trabajar con este programa me esta sirviendo a aprender bastante, repito que siento ser tan torpe y agradecerte de nuevo el esfuerzo que estas haciendo para ayudarme.