Hur man ska anpassa en NES klon controller till bluetooth (2 / 5 steg)
Steg 2: Hur fungerar registeransvarige
Externt styrenheten kallar vi i digital eletronic parallell-till-seriell register, en integrerad krets att store tillståndet för varje knapp (pressad eller inte) när en "lacth" puls ges, då registret sända varje stat alwaysa klocka puls ges.
Så det är cleare att registeransvarige har 5 wire, de är: VCC, GND, LATCH, DATA, klocka.
Så är algorithym att läsa de knappar staterna mycket enkel:
1 - ge en spärr puls;
2a - verifiera DATA tråd;
2b - ge en klocka puls;
3 - upprepa 2a och 2b tills alla knappar stater var läsa;
Här är koden provet häxan innehåller funktionen Läs controller:
função de leitura göra controle
int8 LER_CTRL()
{
#define LATCH_CH pin_c0
#define CLK_CH pin_c1
#define DATA_CH pin_c2
sequencia de leitura
En B Se St U D L R
Int16 val; //combinação dos botões
int i, //variavel de indexação
Zera en variavel
Val = 0;
ATIVA o pulso de spärren
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 klockan e Lê os 7 botões restantes
för (jag = 1; jag < 8; i ++)
{
output_high(CLK_CH);
delay_us(6);
output_low(CLK_CH);
val = (input(DATA_CH) << jag) |val;
delay_us(6);
}
oitavo pulso
output_high(CLK_CH);
delay_us(6);
output_low(CLK_CH);
delay_us(6);
returnera val; retorna en combinação
}
Koden är i C och skrevs på PICC CCS kompilatorn men är så enkel att förstå.
Intervall längden kan ses lättare i bilden nedan.
Det är mer lätt finna pin-ut diagrammet av den ursprungliga NES handkontroll-kontakten i internet, så på bilden är också Visa pin-ut diagrammet av NES klon handkontroll-kontakt.
PS: 3 handkontroller bröts att upptäcka detta :(