Zahlen über SerialPort senden

#3114663
Lesenswert?

Hallo.

Ich möchte eine Zahl, die vom Benutzer eingegeben wird, an meinen Atmega 
über UART senden und diese in meinem Atmega als Anzahl von Schleifen 
durchläufen nutzen.

Wenn ich jedoch diese zahl sende, wird sie als String interpretiert.

Ich bräuchte nun entweder eine Möglichkeit diese Eingabe direkt als 
Integer zu Übertragen oder eine Möglichkeit in meinem Atmega diesen 
String in einen Int zu wandeln.

Vielen Dank für eure Hilfe!
#3114915
Lesenswert?

Joachim Lunz schrieb:

> Wenn ich jedoch diese zahl sende, wird sie als String interpretiert.

Jo. Das ist ja erst mal nicht schlecht. Vermeidet Probleme wenn deine 
Zahlen größer als 255 werden.

Und hoffentlich schickst du in deinem String hinten nach auch noch ein 
'Jetzt ist die Zahl zuende' Zeichen. Denn sonst kann sich dein µC 
brausen gehen, wenn er aus der Übertragung

   17845

rausfinden soll, ob das jetzt die Zahlen

   1 7 84 und 5
waren. Oder doch eher

   17 8 45

oder vielleicht

   178 45

oder möglicherweise

   1 784 5

oder ....

mit einem Trennzeichen, welches eine Zahl abschliesst, gibt es da keine 
Missverstädnisse. Denn zb mit einem abschliessendem ';' nach jeder Zahl 
ist eindeutig klar, wie das empfangene

   17;8;4;5

zu interpretieren ist. Und es ist auch klar, dass die letzte 5 noch 
nicht die komplette Zahl ist, sondern dass da noch was fehlt, was mit 
der nächsten UART Übertragung kommen wird.

> Ich bräuchte nun entweder eine Möglichkeit diese Eingabe direkt als
> Integer zu Übertragen oder eine Möglichkeit in meinem Atmega diesen
> String in einen Int zu wandeln.

Dann zeig halt mal deinen AtMega Code, damit man weiß, in welchen 
Kontext das ganze einzubetten ist. Denn wie immer: viele Wege führen 
nach Rom.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren