www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Aufbauen den String mit sprintf


Autor: gertro (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo liebe Entwickler

wäre nett, wenn jemand mir helfen kann. ich klemme seit einige Zeit auf 
Schwierigkeiten in mein Programm und zwar folgende.
Ich will Daten mit UART senden. ich habe ein Zykluszeit von 100µs für 
die Berechnungen im Programm und will auch in parallele Daten senden. 
Ich habe programmiert, dass ich nur ein character nach 6 Zykluszeiten 
senden. Denn mit 19200 Baudrate dauert das senden eines Characters 
ungefahr 500µs. Das schaffe ich schon richtig. Aber ein zweites Problem 
bleibt und macht mir miss." Das Aufbauen des String mit sprintf ". es 
kostet auch viel Zeit ( ca 500µs). dann wollte ich auch möglicherweise 
dieses String über mehrere Zykluszeiten aufbauen und nur nach dem 
Aufbauen mit den Senden anfangen une wieder aufbauen nur ,wenn das ganze 
String gesendet wurde. code im Anhang.

wie kann ich dieses String mit meinem idee richtig aufbauen?
oder wie kann ich das sprintf() unschreiben, damit das Aufbauen nicht 
mehr lange dauert?
oder wie kann ich nur ein Teilstring pro zykluszeit aufbauen und das 
ganze nur nach z.B 6 Zykluszeiten aufbauen? nach dem Aufbauen des string 
vermute ich, dass der Rest funktioniert.
warum funktioniert mein aufbau über mehrere zykluszeiten nicht?
ist mein Sprintf sehr lang ? wie soll machen?

danke

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gertro schrieb:

> oder wie kann ich nur ein Teilstring pro zykluszeit aufbauen und das
> ganze nur nach z.B 6 Zykluszeiten aufbauen?


Das ist der Weg, den ich einschlagen würde.


in jedem Zyklus nur einen Teil des kompletten Strings aufbauen und die 
Einzelteile mittels strcat zusammensetzen.

anstelle von sprintf als eierlegende Wollmilchsau würde ich auf andere 
Möglichkeiten ausweichen, wie zb itoa, ltoa u. dlg.
Die Zahl, die du da so schön normierst würde ich direkt ausgeben, auch 
Division und Modulo-Division kostet Zeit. Schön kann sich das der 
Benutzer auf dem Terminalprogramm in Gedanken vorstellen, hier geht es 
um Zeit sparen.

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.