Forum: Mikrocontroller und Digitale Elektronik 4 obere Bites ueberschreiben ohne die anderen zu beeinflussen


von verdammt (Gast)


Lesenswert?

Hey,

vielleicht eine bloede Frage, aber ich finde keine Loesung dafuer.
Im Code unten schreibe ich in  ein Byte Feld eine aufsteigende Ziffer, 
was auch wunderbar klappt. Jedoch ueberschriebt es mit die 4 unteren 
Bits, was ich nicht moechte. Wie kann ich es so machen das ich nur die 4 
oberen Bits veraendere und 4 untere so lasse wie sie sind?
1
msg[0].data[2] = (count << 4);   
2
count++;

Ich hoffe das kann ich heute noch loesen und dann schlafen.

Viele Gruesse
von Wolfgang H. (Gast)


Lesenswert?

Ja, "verdammt",

gelgentlich scheint eine Hirnwindung blockiert zu sein.
Alle anderen funktionieren, aber gerade diese eine nicht...

Jedoch ueberschriebt es mit die 4 unteren
> Bits, was ich nicht moechte. Wie kann ich es so machen das ich nur die 4
> oberen Bits veraendere und 4 untere so lasse wie sie sind?
> msg[0].data[2] = (count << 4);
> count++;

Wie wärs mit dieser Sequenz:

msg[0].data[2] &= 0x0F;                    // löschen
msg[0].data[2] |= ((count << 4) & 0xf0);   // obere 4 Bit überschreiben.


Ciao
Wolfgang Horn
von verdammt (Gast)


Lesenswert?

Wolfgang,

aber damit uebrschreiben bzw. loesche ich ja die 4. unteren Bits. Diese 
moechte ich ja behalten wie sie sind.

Gruss
von verdammt (Gast)


Lesenswert?

Wolfgang,

oh gott bin ich dumm. Sorry das funktioniert ohne Probleme, jetzt aber 
schlafen.

Gruss und Danke
von TestX .. (xaos)


Lesenswert?

msg[0].data[2] &= 0b00001111;
msg[0].data[2] |= (count<<4);
von Wolfgang H. (Gast)


Lesenswert?

Hi, verdammt,

> oh gott bin ich dumm....jetzt aber schlafen.

So geht das mit heissgelaufenen Hirnwindungen.
Je verbissener ich mich anstrenge, je größer meine Enttäuschung auf mich 
selbst, desto weiter entfernt sich die Lösung.

Wärst Du gleich schlafen gegangen, wäre es Dir vielleicht ergangen wie 
Kekulé, als er sein Gehirn wochen- und monatelang gemartet hatte, wie 
nur die Kohlenstoffwasserstoffkette aussehen mit 6C aussehen könnte, das 
aber nicht wie Hexan 14 Wasserstoffatome hat, sondern nur H6.
Erst im Halbschlaf sah er dann ein Ringelreihen vor seinen Augen und 
erkannte die Ringstruktur im Benzolmolekül.
Ob er "Heureka!" rief wie Archimedes, ist mir nicht bekannt.

Aber auch der muss sein Gehirn lange gemartert haben mit der Frage, wie 
man einen Götzen aus Massivgold unterscheiden könne von einem aus 
vergoldeten Blei. Vermutlich hat er so lange gemartert, bis er erschöpft 
war und ein Bad brauchte - und als das Badewasser schwappte, da hatte er 
dann die Lösung.

verdammt, die Methoden des Prozessmanagements können wir auch auf unsere 
mentalen Prozesse anwenden.
Nicht nur auf die des Intellekts, des begrifflichen Denkens, sondern 
auch auf die des anschaulichen Denkens, der Intuition. Die Ergebnisse 
sind dann etwas überraschend, und dann mag sie auch nicht jeder.

Ciao
Wolfgang Horn
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.