Tiene un pequeño retardo. Se muestran los 32 primeros números expresados en binario 0-31)
código:
//salidas que se van a utilizar
byte latchPin = 8;
byte clockPin = 12;
byte dataPin = 11;
//array en el que se va a contener toda la informacion de filas
byte dato[32];//informacion de las filas
byte i;
byte co_L, co_H;
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
for (i=0;i<32;i++) {
dato[i]=i;
}
}
void loop() {
muestra (dato);
}
void muestra (byte *matriz) {
co_L=0xFE;
co_H=0xFF;
for (i=0;i<16;i++) {
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, MSBFIRST, matriz[i+16]);
shiftOut(dataPin, clockPin, MSBFIRST, matriz[i]);
shiftOut(dataPin, clockPin, MSBFIRST, co_H);
shiftOut(dataPin, clockPin, MSBFIRST, co_L);
digitalWrite(latchPin, 1);
if (i<8){
co_L<<=1;
bitSet(co_L,0);
}
else{
co_H<<=1;
bitSet(co_H,0);
}
if (i==7){
co_L=0xFF;
co_H=0xFE;
}
delay(5);
}
}
No hay comentarios:
Publicar un comentario