¿Se actualizan los registros de desplazamiento?

0

Supongamos que hay 2 registros de desplazamiento encadenados junto con los siguientes valores

SR1 : 11111111
SR2 : 11001111

Los datos se escriben en SR1 y luego en SR2 como:

digitalWrite(SensLatchPin, LOW);
shiftOut(SR,LSBFIRST,B11001111);//SR2
shiftOut(SR,LSBFIRST,B11111111);//SR1
digitalWrite(SensLatchPin, HIGH);

Si los datos del SR2 se cambian con el tiempo, ¿SR1 se actualiza (como en, establece todas las salidas a 0 y luego se restablece al mismo valor)?

Por ejemplo, se ejecuta el siguiente código (solo cambio para SR2)

digitalWrite(SensLatchPin, LOW);
shiftOut(SR,LSBFIRST,B11101111);//SR2
shiftOut(SR,LSBFIRST,B11111111);//SR1
digitalWrite(SensLatchPin, HIGH);

En el caso anterior, ¿las salidas del SR1 cambian o permanece igual sin ninguna transición (ya que los valores antes y después del enclavamiento son los mismos?)

    
pregunta Anuj Purohit

1 respuesta

1

El texto de tu pregunta se contradice un poco:

"2 Shift Registers chained together"

no coincide con

"data is written to SR1 and then to SR2 "

Por su comentario, entiendo que los SR están encadenados, SR1 directamente a la unidad de usuario, SR2 a SR1.

En ese caso, cada llamada shiftOut transfiere sus datos a SR1, y al mismo tiempo transfiere el contenido de SR1 a SR2.

Suponiendo que utiliza SR con registros separados de desplazamiento y retención, la salida no debe interrumpirse cuando se "vuelve a emitir" el mismo valor para un pin, pero verifique la hoja de datos de su chip. Los fallos muy cortos alrededor del borde del reloj son siempre una posibilidad, y la mayoría de las hojas de datos no lo descartan por completo.

    
respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas