Paso 2: El controlador funciona
Internamente el controlador lo que llamamos en eletrónica digital registro de paralelo a serie, un circuito integrado que tienda el estado de cada botón (presionado o no) cuando se da un pulso de "lacth", entonces el registro envíe cada pulso de reloj de alwaysa de estado se da.
De cleare que el controlador tiene 5 cables, son: VCC, GND, cierre, datos, reloj.
Tan el algorithym a leer los Estados de botones es muy simple:
1 - dar un impulso de cierre;
2A - Verifique que el cable de datos;
2B - dan un pulso de reloj;
3 - Repita 2a y 2b hasta que todos los Estados de botones fueron leídos;
Aquí están la bruja muestra de código contiene la función de controlador leer:
Função de solicitados hacer controle
int8 LER_CTRL()
{
#define LATCH_CH pin_c0
#define CLK_CH pin_c1
#define DATA_CH pin_c2
sequencia de solicitados
Una B Se St U D L R
Int16 val; //combinação dos botões
int i; //variavel de indexação
Zera una variavel
Val = 0;
de Ativa o pulso de cierre
Lê o primeiro botão
output_high(LATCH_CH);
delay_us(12);
output_low(LATCH_CH);
Val = (input(DATA_CH) << 0) |val;
delay_us(6);
Ativa o canal de reloj e Lê os botões 7 restantes
para (i = 1; i < 8; i ++)
{
output_high(CLK_CH);
delay_us(6);
output_low(CLK_CH);
Val = (input(DATA_CH) << i) |val;
delay_us(6);
}
pulso de oitavo
output_high(CLK_CH);
delay_us(6);
output_low(CLK_CH);
delay_us(6);
volver a val; retorna un combinação
}
El código en C y fue escrito en el compilador CCS PICC pero es tan sencillo de comprender.
La longitud de intervalos puede verse más fácilmente en la siguiente imagen.
Es más fácil encontrar el diagrama de pines del conector del regulador NES original en internet, por lo que en la foto también se muestra el diagrama de pines de NES clon conector controlador.
PD: 3 controladores fue roto para descubrir esto :(