ShiftOut diversa

Volevo paragonare la velocita tra la ShiftOut della libreria di Arduino con una semplice scritta da me, ma quest'ultima non funziona. In particolare questo blocco non va:

mask=B10000000;
for (n=0;n<=7;n++)
{
valBit=valByte & mask;
if (valBit!=0)
digitalWrite(pinData,HIGH);
else
digitalWrite(pinData,LOW);
delay(1);
digitalWrite(pinClock,HIGH);
delay(1);
digitalWrite(pinClock,LOW);
delay(1);
//digitalWrite(pinData,LOW);
mask=mask>>1;
}

Intanto io toglierei i delay, non credo ti servano. Le operazioni di digitalWrite portano via già del tempo di suo, dovrebbe essere sufficiente.
Poi metti il controllo nel for a n<8.

Mi rispondo: la routine anche senza i delay e' corretta. Ma funziona solo se definisco mask come int e non come char.
giorgio

Il tipo "char" è un byte che contiene anche il segno. Prova ad usare il tipo "byte", che è un unsigned char.