ich möchte einer int variablen einen Wert zuweisen. Wenn ich über den seriellen Monitor eine Zahl eingebe (über den Befehl var = Serial.read(); )wird mir die Zahl der ASCII Tabelle ausgeben.
Also ich gebe eine 4 ein und es wird ein 52 gespeichert.
Ich weiß, dass die Eingabe ein char ist, aber wie kann ich den eingegebenen Wert als solchen integer abspeichern?
macht aus den Zeichen '0' ... '9' eine Zahl im Bereich 0 ... 9
Beantwortet das deine Frage schon?
Dass '0' das gleiche wie 48 ist, braucht man sich gar nicht zu merken.
Wichtiger ist eher, was man mit {kein Zeichen, andere Zeichen, mehrere Zeichen} macht.
Wie gesagt, ich würde mir gerne über den seriellen Monitor eine Anzahl für x Schleifendurchläufe eingeben
Also gebe ich die Zahl (von 1-9 langt erst einmal) ein und die integer Variable wird dann in einer for Schleife eingefügt um die Anzahl der Schleifendurchläufe zu bestimmen
DEBUG_PRINTLN(var); sollte nur als Kontrolle dienen ob die Variable wirklich den Wert angenommen hat. Vorher wurde mir der Wert damit angezeigt
Ja, das habe ich schon ungefähr so geraten, aber ich verstehe nicht, warum du das nicht machst.
Auch verstehe ich nicht, wo du da eine leere Ausgabe herbekommst, die du nicht haben willst.
Bitte ein (möglichst weit vereinfachter aber kompletter) Sketch, der deine bisherigen Erkenntnisse und das verbleibende Problem vorführt.
Und noch ein Tip: Wenn du Variablendefinitionen weglässt, versteckst du vermutlich das Problem.
Das wird dir (spätestens nach diesem Tip) übel genommen.
Ansonsten, herzlich willkommen. Wir beißen nicht, wir wollen nur spielen.
ich habe mich aufs wesentlich beschränkt, was auch zielführend war
Es ging immer nur um eine variable was aus dem Kontext hervorgeht. Selbiges gilt für die besagte Schleife.
Ich bin dir dankbar für deine Hilfe, finde deinen letzten Satz aber unverschämt. Fragen zu stellen und im nächsten Satz zu sagen dass du es gar nicht wissen willst.
Er wollte Dir nur damit signalisieren, daß Du Ihm darauf nicht wirklich antworten musst, da Er eh keine Antwort von Dir erwartet - Er hat Das halt noch nie anders von Dir erlebt.
Man kann aber auch mehrstellige Zahlen eingeben - wenn's Mal größer als Neun werden soll.
postmaster-ino:
Er hat Das halt noch nie anders von Dir erlebt
Danke für die Unterstützung, aber so krass wollte ich das nicht formulieren und habe es auch nicht so gemeint. Obwohl postmaster mit diesem Satz auch Recht hat.
Auch rhetorische Fragen haben ein Fragezeichen am Ende, erwarten aber eigentlich keine Antwort und sind auch nicht immer "unverschämt" gemeint.
Und mein "wenn das Thema für dich erledigt ist, ist es schön" war bitte buchstäblich so gemeint.
@msc306;
Lies dazu auch nochmal Post #1 sorgfältig durch. Michael_X hat es da eigentlich sehr genau beschrieben, was das Serial.read() - '0' bewirkt. Zusammen mit Tommys Vorschlag, Dir eine ASCII-Tabelle anzuschauen, sollten evt. Unklarheiten beseitigt sein.
Die ASCII Tabelle ist mir bekannt. Ich verstehe, dass Serial.read() - '0' die Zeichen 0 bis 9 in zahlen umwandelt aber was macht Serial.read() - '1' oder was bewirkt ein anderer Buchstabe/Zahl der dort eingefügt wird.
Das ist eine ganz normale Subtraktion. Und hinter den Zeichen steckt nur deren Zahlenwert. - '1' ist aber Unsinn. Wenn du verstehst was - '0' macht, wieso willst jetzt was anderes abziehen?
Andere Subtrahenden ergeben nur in anderen Zahlensystemen wie Hexadezimal Sinn. z.B. um von 'F' oder 'f' auf 15 zu kommen
Serenifly:
Das ist eine ganz normale Subtraktion. Und hinter den Zeichen steckt nur deren Zahlenwert. - '1' ist aber Unsinn. Wenn du verstehst was - '0' macht, wieso willst jetzt was anderes abziehen?
Andere Subtrahenden ergeben nur in anderen Zahlensystemen wie Hexadezimal Sinn. z.B. um von 'F' oder 'f' auf 15 zu kommen
Danke für die Erklärung, hab's jetzt verstanden.
Tut mir leid, dass ich für euch banale Sachen nicht auf Anhieb verstehe. Ich versuch meine Fragen klar zu formulieren, allerdings helfen mir Kommentare wie schau die ASCII Tabelle an nicht wirklich weiter.