Register Manipulationen ODER Operator

OP #2663101
Hallo,

kurze frage - arbeite mich gerade in GCC ein - war davor Bascom Nutzer.

Ich habe mich jetzt schon durch einige Beispiele durchgearbeitet und für 
mich wird nicht eindeutig klar was genau der Unterschied zwischen:

TCCR0B = (1<<CS02) | (1<<CS01) | (1<<CS00);

und

TCCR0B |= (1<<CS02) | (1<<CS01) | (1<<CS00);

ist. Meiner Meinung nach keiner - Darf ich beides gleich behandeln oder 
tapp ich in eine Falle.

Also aus dem was ich bisher aus den Tutorials gelesen hab wird es mir 
nicht klar - mal wird es so gemacht und ein anderes mal so.

Wäre nett wenn ihr mir bei dieser Anfänger Frage weiterhelfen könntet.

Schönes Wochenende - Sebastian
OP
Ok... ich glaub fast mein Verständniss Problem lag wo anders.... aber 
egal:

Also lieg ich dann Richtig in der Annahme, dass

TCCR0B = (1<<CS02) | (1<<CS01) | (1<<CS00);

und

TCCR0B = (1<<CS02);
TCCR0B |= (1<<CS01);
TCCR0B |= (1<<CS00);

das gleiche Ergebnis zur Folge hätte ( bezüglich auf den Inhalt im 
TCCR0B )?

Also wenn ich in Registern ein Bit setzen will ohne das die Bits die ich 
zuvor eventuell gesetzt habe verändern will nehme ich :

|=

Sonst - z.b. beim ersten beschreiben - bei der ich alle Einstellungen 
vornehme - kann ich einfach

=

schreiben.

Aber da ja die Register am anfang sowieso auf 0x00 stehen würde ein |= 
bei der Initalisierung auch nicht stören.

Also angenommen TCCR0B = 0x00 im Vorfeld
würde es egal sein ob ich

TCCR0B = (1<<CS02) | (1<<CS01) | (1<<CS00);
oder
TCCR0B |= (1<<CS02) | (1<<CS01) | (1<<CS00);
schreibe

Wenn TCCR0B ungleich 0x00 würde ich aber Probleme bekommen

Hab ich es richtig zusammengefasst/verstanden ?!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.