Hi,
ich habe eine 8-stellige Zahl nur mit 1 oder 0. Jetzt möchte ich gerne einzelene Stellen dieser Zahl ändern. Hab das jetzt mit bitwrite versucht.
Wenn die Zahl wie folgt aussieht: 11111111
und ich
bitWrite(pins, 2, 1) und
bitWrite(pins, 3, 0) ausführe kommt bei einem
Serial.println(pins, BIN);
folgendes raus
100
Ich hätte aber gerne
11101111
Kann mir jemand erklären, was ich hier falsch mache.
Danke Christoph
Ja, du zeigst den Kode nicht, der den Fehler hat.
Ich würde raten, du hast mehrere pins.
agmue
October 23, 2022, 4:05pm
5
Ja, Du zeigst uns nicht den Teil, wo der Fehler sich vor Dir versteckt.
Denn bei mir geht es:
void setup()
{
Serial.begin(115200);
delay(500);
Serial.println("\nStart ...");
uint8_t pins = 0b11111111;
Serial.println("76543210");
Serial.println(pins, BIN);
bitWrite(pins, 2, 1);
bitWrite(pins, 3, 0);
Serial.println(pins, BIN);
}
void loop(){}
Ausgabe:
Start ...
76543210
11111111
11110111
fony:
Hier sind Beispiele
Nö, irgendwie nicht
fony
October 23, 2022, 4:30pm
6
Upps total schief ist der Turm
Aber jetzt bitWrite()
im #3 habe auch korrigiert
combie
October 23, 2022, 4:38pm
7
Wie so oft:
Es wird nicht einzeln getestet
Es wird kein komplettes Testprogramm gezeigt
Der Testcode wird bis zu Untestbarkeit verstümmelt
Der fehlerhafte Code wird raus geschnitten, also geheim gehalten
Meistens befindet sich die Fehlerursache vor dem Monitor.
Also alles ganz normal.
Etwas nervig, aber offensichtlich normal.
system
Closed
April 21, 2023, 4:39pm
8
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.