www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2 int Variablen in einen String einfügen


Autor: The Engineer (the_engineer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
ich habe ein Display was per serielle Schnittstelle angesteuert wird.

Steuer und Datenausgaben funktionieren super. Hab nun nur den Nachteil
das ich die Position des Cursors mit einem String:

ESC TC5,4;

ausgeben kann. Die 5 und 4 stehen für die X,Y Werte.

Diese Werte sollen aber als int gespeichert werden und in den String
eingefügt werden.

Quasi wie in Delphi :
ESC+'TC'+IntToStr(5)+','+IntToStr(4)+';'

nur halt in C

Danke!
Thorsten

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würde mit itoa und strcat gehen, wird aber vermutlich recht langsam.

besser, aber mit viel mehr Flashbedarf wäre "sprintf".

Schnellste Lösung wäre das zusammenfügen sein zu lassen und die Teile
einzeln zu senden, also
send(ESC); send("TC"); send(itoa(X))...

Für Zahlen von 0..9 ist für die Umwandlung in ASCII wohl ein ('0'+x)
am schnellsten.

/Ernst

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ginge zum Beispiel so:

  char string[10];

  sprintf(string, "\x1bTC%d,%d;", x, y);

Das setzt voraus, daß "string" ausreichend viel Platz bietet, also
mindestens 8 Bytes (bei x & y < 10) inklusive abschließender \0.

Sicherer ist hier die Verwendung von snprintf:

  #define LAENGE 10

  char string[LAENGE];

  snprintf(string, LAENGE, "\x1bTC%d,%d;", x, y);

Autor: The Engineer (the_engineer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke !

@Rufus Deine Methode ist genau das was ich suchte und sie funzt auch
*g

Danke !

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.