nur bestimmte Bits übertragen ohne Änderung

OP #4579226
Lesenswert?

Hallo,

z.B.: PORTD = 0b01011000, dabei soll das obere nibble: 0101 unverändert 
bleiben und das untere nibble: 1000 bekommt neue Bits zugewiesen z.b: 
1010.

das Ergebnis wäre: 0b01011010.
wie maskiert/shiftet man das am effektivsten?
...ich bekomme es gerade nicht hin (Sprache C)

Gruß
OP #4579246
Lesenswert?

IS P. schrieb:
> Da du nicht weißt welche Bits du setzen willst, musst du die unteren 4
> Bit zuerst löschen und dann die neuen setzen:
>
> Unteren 4 Bits löschen:
> PORTD &= ~(0x0F);
> bzw.
> PORTD &= 0xF0;
>
> Unteren 4 Bits setzen:
> PORTD |= neueBits;


Vielen Dank
so funktioniert es und ich hab endlich die Vorgehensweise verstanden. 
Super!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren