Bueno grax por responder

Nocturno y fidodido18 difieren en cuanto a si se ejecuta o no el shift antes de que input(PIN_A2)
sea 1,si espera a que se haga 1 es como un do-while según lo que pesque es como yo creia que funcionaba o sea como un do-while cada vez que se pone un while; va a funcionar como de esa manera entonces como no hay nada delante del primer
while(!input(PIN_A2)); no hace nada hasta tanto el pin_a2 que lo imagino como un pulsador con resistencia pull-dow se suelte(entences este while es falso),una vez liberado se ejecuta el shift y luego comprueba si se oprime con el while(input(PIN_A2));
pero no me cierra por que de esa forma en i=1 llenaria todo el buffer con al menos 23 ceros porque ejecutaria el shift mientras
siga pulsada,o sea me confunden la llaves yo lo entiendo asi y no se si sintacticamente es correcto:
byte buffer[3];
for(i=1; i<=24; ++i){
{
}
while (!input(PIN_A2));
shift_left(buffer,3,input(PIN_A3));//Va a mover a la izquierda lo que devuelva input(PIN_A3) y lo almacena en buffer.
{
}
while (input(PIN_A2)) ;entonces si hasta que no se libere el pusador y se haga falsa la condición no se incrementa i.Grax.