Forum: Mikrocontroller und Digitale Elektronik Text Strings via RS232 zu Variablen konvertieren und zurück


von Sven (Gast)


Lesenswert?

Hallo,

ich stehe vor dem Problem das ich Zahlen über RS232 bekomme. Diese 
Zahlen kann man ja leider nicht einfach verwenden, da z.B. eine zwei als 
Text für den Wert 50 steht. Gibt es eine einfache Routine wie ich zahlen 
aus dem Buffer in verwertbare Variablen packen kann? Was mache ich wenn 
ich z.B. eine 2000 bekomme. Das sind ja 4 Zeichen. Diese muss ich später 
in eine Variable mit dem Wert 2000 bekommen.

Nachdem ich dann mit den Variablen fertig bin und die Werte editiert 
habe, möchte ich z.B. diese Variable 2000 wieder zurück in einen 
Textstring konvertieren und über die RS232 ausgeben. Wie kann ich das am 
besten lösen, da man ja auch nicht einfach 2000 ins Data  Register der 
RS232 schreiben kann.

Vielen Dank für Eure hilfe.

Sven

von GPS (Gast)


Lesenswert?

In C wuerde man Scanf und printf verwenden. Tja. In anderen Sprachen mag 
das anders heissen. Bei einer anderen Sprache, die ich verwende sind 
diese Routinen zu klotzig, daher schreib ich die jeweils selbst, resp 
copy/paste sie.

von Sven (Gast)


Lesenswert?

Ja C ist schon in Ordnung. Das kann man mit scanf() und printf() machen? 
Ich bekomme jede Sekunde 32 Bytes mit dem folgenden Format:
!XXXX,1234,123,12,12,12*00,F,3 CR LF

Die Zahlen müssen in Variablen und hinterher wieder zurück

von GPS (Gast)


Lesenswert?

Naja, die einzelnen Zahlen musst du schon zuerst von den Kommans und so 
befreien. also '1234' in scanf eingeben und 1234 kommt raus. Ja.

von Philipp B. (philipp_burch)


Lesenswert?

Wenn es sich um "leere" Zahlen handelt, würde ich eher atoi() verwenden 
(Ascii to integer), ist weniger ressourcenintensiv (Beim PC irrelevant, 
auf einem uC dagegen schon wichtig). Umgekehrt dann natürlich auch 
wieder itoa() um den String zu generieren.

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
Noch kein Account? Hier anmelden.