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


von The E. (the_engineer)


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

von Εrnst B. (ernst)


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

von Rufus Τ. F. (rufus) Benutzerseite


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);

von The E. (the_engineer)


Lesenswert?

Danke !

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

Danke !

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.