Forum: Mikrocontroller und Digitale Elektronik Was bedeuten |= und &=? STM32 Programmierung


von mompf (Gast)


Lesenswert?

Guten Tag,

ich lerne das Programmieren mit dem STM32 Discovery Board und habe ein 
paar Fragen zu den unteren Befehlen. Mit dem ersten schalte ich die 
Taktversorgung für Port D an.

RCC->AHB1ENR |= 0x3;
RCC->AHB1ENR &= 0x3;

Was ist der Unterschied zwischen diesen beiden Befehlen beziehungsweise 
was bedeutet |= und &= ?

von npn (Gast)


Lesenswert?

mompf schrieb:
> Guten Tag,
>
> ich lerne das Programmieren mit dem STM32 Discovery Board und habe ein
> paar Fragen zu den unteren Befehlen. Mit dem ersten schalte ich die
> Taktversorgung für Port D an.
>
> RCC->AHB1ENR |= 0x3;
> RCC->AHB1ENR &= 0x3;
>
> Was ist der Unterschied zwischen diesen beiden Befehlen beziehungsweise
> was bedeutet |= und &= ?

"a &= b" ist gleichbedeutend mit "a = a & b"
"a |= b" ist gleichbedeutend mit "a = a | b"

Was "&" und "|" bedeuten, weißt du?

von Alexander K. (alex_k111)


Lesenswert?

Das erste ist ein binäres oder mit zuweisung und das zweite ein binäres 
und mit zuweisung

Es wird der Wert aus dem Register genommen, anahnd des Befehls mit dem 
Rechten wert verrechnet und wieder in das register geschrieben

(nur 4 bit dargestellt)
Falls AHB1ENR = 0b0001
0x3 entspricht  0b0011

1.Fall: AHB1ENR = 0b0011 = 0b0001 | 0b0011
2.Fall: AHB1ENR = 0b0001 = 0b0001 & 0b0011

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.