Hallo, wenn ich an einem Port Pull-Up-Eingänge und gleichzeitig Ausgänge habe, was passiert dann bei Bitmanipulationen mit den Pull-Ups? Beispiel: ... DDRB = 0b00111110; PORTB |= 1<<PB0 | 1<<PB6; // activate internal pull-ups for PB0 nad PB6 PORTB |= ((1 << PINB1); ... Hier werden doch die Pull-Ups wieder deaktiviert, oder? Durch die letzte Zuweisung wird ja auf PB0 und PB6 wieder eine 0 gegeben, was zur Deaktivierung der Pull-Ups führen würde, nicht wahr? Man kann die letzte Zeile ja auch so schreiben PORTB |= 0b00000010; Oder wäre das nur bei einer direkten Zuweisung wie PORTB = 0b00000010; ein Problem? Irgendwie stehe ich gerade auf dem Schlauch... Danke schon mal vorweg. thoern
T. Thoern schrieb: > Durch die letzte > Zuweisung wird ja auf PB0 und PB6 wieder eine 0 gegeben, Nein! T. Thoern schrieb: > PORTB |= ((1 << PINB1); Du meinst sicher: PORTB |= ((1 << PB1); T. Thoern schrieb: > Irgendwie stehe ich gerade auf dem Schlauch... Ja! Und damit du da runter kommst, macht du dich kundig was |= wohl bedeuten mag.... T. Thoern schrieb: > Man kann die letzte Zeile ja auch so schreiben > PORTB |= 0b00000010; Ja! T. Thoern schrieb: > Oder wäre das nur bei einer direkten Zuweisung wie > PORTB = 0b00000010; Ja!
T. Thoern schrieb: > ... > DDRB = 0b00111110; > PORTB |= 1<<PB0 | 1<<PB6; // activate internal pull-ups for PB0 nad PB6 > > PORTB |= ((1 << PINB1); > ... > > Hier werden doch die Pull-Ups wieder deaktiviert, oder? Durch die letzte > Zuweisung wird ja auf PB0 und PB6 wieder eine 0 gegeben Nein. Du möchtest dich dringend über die Funktion des |= Operators informieren. Z.B. im Artikel Bitmanipulation.
Danke Euch! Bin wieder runter vom Schlauch :-) Wenn in einem Byte mehrere Bits auf Eins gesetzt werden sollen, wird dies durch eine ODER-Verknüpfung erreicht. Alle Bits, welche in der Bitmaske '1' sind, werden auf '1' gesetzt. Alle Bits, die in der Maske auf '0' gesetzt sind, bleiben unverändert. Gruß, thoern
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.