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
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.
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.
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 ?!
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.