Forum: Compiler & IDEs Portzugriff


von Alexander Starke (Gast)


Lesenswert?

Hallo,

ich habe folgendes Problem:

Ich steuere mit einem Port meines ATMega8 zwei Schrittmotoren an. PD0
bis PD3 gehören zu Stepper1 und PD4 bis PD7 zu Stepper2. PORTB muss
somit geteilt sein, da die Motoren getrennt und unabhängig voneinander
angesteuert werden sollen.
Wie kann man in die oberen 4 Bit des Ports schreiben, ohne die unteren
4 Bit zu verändern und umgedreht?
PORTD = 8BitWert & 0x0f   bzw.    PORTD = 8BitWert <<4 oder ähnlich
Konstruktionen sind leider gescheitert ;-)

Besten Dank im voraus,

Alex

von Jörg Wunsch (Gast)


Lesenswert?

PORTD = (PORTD & 0x0f) | (newuppernibble << 4);

von Alexander Starke (Gast)


Lesenswert?

Besten Dank Jörg, du hast mir wieder mal aus der Klemme geholfen.
Gibt es eigentlich irgendeine Seite im Netz, auf der sämtliche Befehle
dieser Art gelistet sind.
Es wäre schön, wenn man wüsste, was alle möglich ist, dadurch könnte so
manches Codesegment sicherlich einfacher gestaltet werden.

Alex

von Jörg Wunsch (Gast)


Lesenswert?

Ein gutes C-Buch? ;-)

Im Ernst: das ist pures Standard-C.

von Rahul (Gast)


Lesenswert?

und etwas Hirnschmalz?

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.