Bits eines Ports merken und wieder herstellen.

OP #410700
Lesenswert?
• ▲
▼
Ich möchte mir vor eine Portopertaion die Bits 5,6, und 7 merken,
und nach der Operation wieder genau so setzt wie sie vor der Operation
waren. Aber nur die 3 Bits, alle andern sollen unverändert bleiben.

Wie kann man das am schnellsten lösen ?

Das merken habe ich mal so gelöst:

unsigned char portd_old = 0x00;
portd_old = PORTD & 0xE0;

Aber wie setzte ich die Bits jetzt wieder möglichst effektiv ohne die
anderen Bits zu beeinflussen ?

Gruß Alex
Gast #410701
Lesenswert?
• ▲
▼
Die eine grosse boolsche Operation hast du doch schon gefunden, da kann
der Weg zur Anderen doch auch nicht soooooo schwer sein....
Und wenn du doch nicht drauf kommst kannst du deine Merkvariable auch
einfach in eine Weitere umspeichern und später zurücklesen :-)
Viele Wege führen nach Rom.

bye

Frank
#410703
Lesenswert?
• ▲
▼
Na ja. Mit einer Operation kommt er bei der Restaurierung
nicht weiter.
Es sind schon 2 Operationen:
Mit der ersten werden gezielt alle zu restaurierenden Bits
auf 1 gesetzt. Mit der 2-ten werden dann die 0-Bits aus
der gemerkten Variable gesetzt.

@Alexander: Wie man Bits gezielt auf 0 setzen weist du ja schon:
Mit einem &: Überall wo in der Maske eine 0 steht, kommt
im Ergebnis mit Sicherheit auf eine 0 hin.
Die andere Operation ist ein |. Mit der kann man Bits gezielt
auf 1 zwingen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.