Forum: Mikrocontroller und Digitale Elektronik itoa (...)


von Mike (Gast)


Lesenswert?

Hallo,

hat jemand vielleicht eine C-Routine zur Hand, welche o.g. Operation
möglichst schnell ausführt. Ausführendes System ist eine 16 Bit
Festkommaeinheit.
Leider steht keine solche Routine in der stdlib zur Verfügung.

Gruß, Mike

von Christian (Gast)


Lesenswert?

Hallo

ist fprintf zu langsam, oder steht die Funktion auch nicht zur
Verfügung?

Gruss
Christian

von Mike (Gast)


Lesenswert?

fprintf wird schon unterstützt, allerdings ist mir unklar, wie ich sie
verwenden kann. Wenn du mir dafür ein Bsp. geben könntest? Ziel ist,
dass der konvertierte Wert in einem Array landet, damit er von einer
anderen Routine weiter verarbeitet werden kann.

von OldBug (Gast)


Lesenswert?

sprintf...

    unsigned char array[7];
    int i = 1024;
    sprintf(array, "%d", i);

von Mike (Gast)


Lesenswert?

@OldBug

Vielen Dank, hast mir eine Menge Zeit gespart. Ich sehe zwar die
Listings der Funktionen, die Doku dazu ist jedoch quasi gleich Null.

Gruß, Mike

von KoF (Gast)


Lesenswert?

hmm dann seh mal in eine c referenz ;-)
nahezu die komplette std ist für die meisten uc's portiert worden.
selbst solche sachen wie qsort ... sind endhalten ( so beim gcc für den
msp, bestimmt auch bei anderen uc entwicklungsumgebungen ).

von Mike (Gast)


Lesenswert?

Es geht um einen DSP von AD. Was wäre denn eine gute Referenz für solche
 Standardsachen?

von Michael (Gast)


Lesenswert?

http://www.mikrocontroller.net/forum/read-4-126283.html#new

Du mußt die Routine ein bißchen abspecken, damit sie nur noch 16 Bit
verarbeitet. Dies sollte aber kein Problem sein.

von Mike (Gast)


Lesenswert?

@ Michael

Danke dafür, deine Routine liefert eine Laufzeitersparnis von 55%,
benötigt bei mir im worst-case also max. 5us ;-)

Bin noch am Grübeln, ob weitere Optimierungen möglich wären.

Gruß, Mike

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.