Solo una pregunta teórica más que nada. ¿El señal del reloj tiene que tener el mismo ancho entre picos y valles?
Una señal de reloj normal con datos (abajo):
Una señal de reloj aleatoria con datos (los datos siguen sincronizados con el reloj) (abajo):
¿El chip (cualquier chip en general, pero como ejemplo, un registro de desplazamiento serie a paralelo) seguiría comportándose normalmente con un reloj más aleatorio? Si no, ¿por qué?
Nuevamente, no es que tenga planeado hacer esto, pero teóricamente, ¿hay alguna razón por la cual no podría usar un pin de salida estándar en el Raspberry Pi/Arduino como el reloj y otro pin como el dato?
Ejemplo de pseudocódigo:
fakeClockPin = 1;
dataPin = 2;
setPin(dataPin, HIGH);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms
setPin(dataPin, LOW);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms
setPin(dataPin, HIGH);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms
setPin(dataPin, LOW);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms
0 votos
No todos los relojes son simétricos. Ciertos viejos microprocesadores necesitaban un reloj con ciclo de trabajo del 66% (si mal no recuerdo).
1 votos
La técnica descrita por tu pseudo-código se llama bit banging, y es algo perfectamente legítimo para hacer.