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
> Warum shiftet er ausgerechnet die 3 ? Weil PINSELx in Gruppen von 2 Bits aufgeteilt ist. Preisfrage: Wie sehen 2 Bits hintereinander dezimal aus? Genau: 3 ist die Antwort. Siehe auch: Bitmanipulation
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.
Hat sonst niemand mehr eine Hinweis der mir weiterhelfen könnte? Es geht mir einfach ums Verständnis der Zusammenhänge. ich bin ziemlich neu im Bereich µC.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.