Forum: Compiler & IDEs Frage Timer Config


von joelo (Gast)


Lesenswert?

Hallo Forum!

Ihr werdet mich vielleicht auslachen, aber ich habe da mal eine 
Anfängerfrage

Habe in einem Quellcode zur Soft PWM ff. Timer Config gefunden:

TCCR1B = (1 << WGM12) | 4;

Bis zum WGM12 ist mir die Zeile klar, was aber bewirkt "| 4 " ?

Vielen Dank für eure Hilfe im Voraus.

Gruss

joelo

von Klaus W. (mfgkw)


Lesenswert?

| macht ein "bitweises OR", und 4 ist binär ...0000100

Das heißt der Wert von (1 << WGM12) wird bitweise mit ...0000100 
verknüpft.
Also wird das dritte Bit (von rechts) gesetzt zusätzlich zu dem Bit aus 
(1 << WGM12).

von Klaus W. (mfgkw)


Lesenswert?

PS: welchen Sinn das dann hat, sollte sich aus dem Datenblatt zu deinem 
Controller egeben bei der Beschreibung von TCCR1B.

Wahrscheinlich gäbe es für das Bit auch einen sinnvolleren Namen, 
anstatt die 4 zu nehmen (CS12?). Aber Quelltext zu haben, ist ja kein 
Garant fur gut geschriebenen Quelltext...

von joelo (Gast)


Lesenswert?

@ Klaus

Vielen Dank für die schnelle Antwort.

AUf das Thema Bit Manipulation wäre ich in dieser Schreibweise nicht 
gekommen. Aber nu is klar.

Super und Danke nochmal

joelo

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.