Gör en SNES controller baserade Arduino spel (7 / 8 steg)
Steg 7: Koden, del 2
I det här steget kommer jag snabbt att täcka de metoder som används för att få data från registeransvarige. Jag sa ju teorin i föregående steg, men nu jag kommer att lägga ut de faktiska funktionsanrop.Jag tror jag fick en liten bit av denna kod från detta instructable. Inte helt säker dock.
Det finns tre metoder används för att kontrollera controller input:
buttons()
strobe()
shiftin()
Metoden buttons() ställer först in en retur och en plats counter. Det sedan utlöses (med strobe()) och går in i en for() slinga. I den for-loop, läser och lagrar data en bit i taget med hjälp av shiftin() metod och bitvis operatörer.
Metoden strobe() är ganska enkelt. I princip anger bara strobe pin hög, sedan omedelbart tillbaka till låg. Ganska enkla saker. Detta säger den registeransvarige att börja överföra data.
Metoden shiftin() faktiskt läser data. Det tar informationen från data stift, sedan växlar mellan klockan stift, som berättar den registeransvarige att skicka nästa lite över.
Med bara dessa tre metoder, kan du läsa statligt av registeransvarige. Du ska aldrig behöva direkt ringa strobe() eller shiftin(). Slutligen, när kontroll för att se om man trycker på en knapp, måste du använda 2 bitvisa operatorer. Den ~ (tilde) är en bitvis inte och inverterar data, då den & kontrollerar den statliga vs oavsett vilken knapp du vill pressade.