Datum:
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
Datum:
Sebastian Kreuzer schrieb: > Meiner Meinung nach keiner - Darf ich beides gleich behandeln oder > tapp ich in eine Falle. dann überleg doch mal wenn TCCR0B = 0xFF ist, was ein beiden Fällen passiert.
Datum:
Sebastian Kreuzer schrieb: > TCCR0B = (1<<CS02) | (1<<CS01) | (1<<CS00); > > und > > TCCR0B |= (1<<CS02) | (1<<CS01) | (1<<CS00); > > ist. Meiner Meinung nach keiner Dann hast du noch nicht verstanden, wofür das |= steht a |= b; ist die Kurzschreibweise für a = a | b; da geht also das was links vom = steht auch noch in den Ausdruck rechts mit ein.
Datum:
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 ?!
Datum:
Sebastian Kreuzer schrieb: > Aber da ja die Register am anfang sowieso auf 0x00 stehen würde ein |= > bei der Initalisierung auch nicht stören. Wenn sie es tun. Tun sie das? Immer?