Forum: Compiler & IDEs 32Bit einlesen; auf 8Bit verkleinern


von Daniel M. (sierra)


Lesenswert?

Hi,
ich hab einen LPC2124 und möchte gerne den aktuellen Zustand der Pins
1.16-1.23 (also 8bit) einlesen. Ich steh aber ehrlich gesagt zZ ein
bisschen auf Schlauch und weis nicht wie das funktionieren soll.
Meine Idee wär mit "var = IO1Pin" (also Port1, wobei var eine 32bit
Variable ist) den ganzen Port einzulesen und dann irgendwie die Bits
16-23 (weil nur die interessieren mich) in eine Variable2 zu packen
(wobei Variable eine 8bit Variable ist).
Hat jemand ne Idee wie ich dass machen könnte?

von Daniel M. (sierra)


Lesenswert?

Kann ich nicht einfach das gesamte 32Bit Wort um 16 Stellen nach links
verschieben und dann einfach sagen, dass das Ergebnis nur ne 8Bit
Variable is??

Also so undgefähr:

--------------------
uint32_t var;    // var  als 32 bit deklarieren
uint8_t var2;    // var2 als 8 bit deklarieren

var = IO1PIN;    // einlesen von Port1 und var zuweisen
var2 = var >>16; // var um 16 stellen nach rechts schieben
--------------------


Ginge das so, oder muss ich da einen anderen Weg wählen??

von Alex (Gast)


Lesenswert?

Geht prinzipiell so :)

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
Noch kein Account? Hier anmelden.