GPIO Joystik (input) auf 1768

Gast #3097164
Lesenswert?

Hallo zusammen,
ich versuche gerade auf Keil mcb1700, einige Übungen mit GPIO 
hinzubekommen. z.B wenn ich den Joystick betätige soll eine bestimmte 
LED leuchten. Dabei habe ich auf eine Internetseite folgende 
Codefragmente gefunden:

"For example, the five button joystick is connected to pins P1.20, 
P1.23, P1.24,
P1.25 and P1.26.

LPC_PINCON->PINSEL3 &= ~((3<< 8)|(3<<14)|(3<<16)|(3<<18)|(3<<20));
/* P1.20, P1.23..26 is GPIO (Joystick) */"

Aber ich kann das absolut nicht nachvollziehen. Warum shiftet er 
ausgerechnet die 3 ? was hat die 3 hier zu bedeuten?

und hier:
For example, to read the joystick position, the following code can be 
used
#define KBD_MASK 0x79
uint32_t kbd_val;
kbd_val = (LPC_GPIO1->FIOPIN >> 20) & KBD_MASK;

Was passiert hier genau? warum shift um 20? warum nach rechts? und was 
sagt mir die 0x79??...

Hab die Doku von LPC1768 auch angeschaut. Leider ohne Erfolg. kann mir 
da einer vielleicht auf die Sprünge helfen?
hier ist nochmal der komplette Link.
https://ece.uwaterloo.ca/~yqhuang/labs/ece254/doc/MCB1700_Hardware.pdf
Gast #3097479
Lesenswert?

Jim Meba schrieb:
> Weil PINSELx in Gruppen von 2 Bits aufgeteilt ist

kannst du das bitte etwas ausführlicher erklären?  Steht meine Antwort 
vielleicht auf seite 104 Tabelle 75?? Sorry ich kapiere es immer noch 
nicht.
Mit Bitmanipulation habe ich keine Probleme. Mir ist nur schleierhaft 
warum die so manipuliert werden. Das Datenbuch bringt mir hierbei 
irgendwie auch keine Erleuchtung. Aber danke für deine Hinweis.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren