www.mikrocontroller.net

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


Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: GPS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: GPS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.