Forum: Compiler & IDEs Zahl mit "dtostrf" auf LCD ausgeben am MSP430


von Henning (Gast)


Lesenswert?

Hallo,

ich möchte eine Dezimalzahl auf einem LCD ausgeben. Das Problem ist die 
Umwandlung der Zahl in einen String. Hierzu gibt es 2 Funktionen. 
"sprintf" und "dtostrf". Da der von mir verwendete MSP430G2452 einen 
sehr kleinen Flashspeicher hat, muss ich "dtostrf" verwenden. Als 
Compiler nutze ich das Code Composer Studio. Hierzu habe ich folgenden 
relevanten Programmcode:

#include <msp430g2452.h>
#include <stdint.h>

float Zahl=24.45;
char Wert[20];

main
{
dtostrf (Zahl,6,2,Wert);
LCDText(Wert,0)
}

Beim Compilieren erhalte ich um die Funktion "dtostrf" diverse 
Fehlermeldungen und Warnungen.

Die Verwendung von "sprintf(Wert, "Ergebnis = %d", 326); 
LCDText(Wert,0)" funktioniert. Aber nur, wenn bei Integer-Zahlen, die 
direkt in der Klammer stehen (hier: 326). Wenn ich die Zahl in eine 
Variable schreibe, funktioniert es nicht mehr.

Hat jemand schon mal mit einem ähnlichen Problem zu kämpfen gehabt oder 
gibt es vielleicht noch andere Funktionen?

von Daniel A. (daniel-a)


Lesenswert?

Henning schrieb:
> Hat jemand schon mal mit einem ähnlichen Problem zu kämpfen gehabt

Nein

> oder gibt es vielleicht noch andere Funktionen?

itoa

von Peter II (Gast)


Lesenswert?

Henning schrieb:
> Beim Compilieren erhalte ich um die Funktion "dtostrf" diverse
> Fehlermeldungen und Warnungen.

schön und welche sind das?

von Dirk B. (dirkb2)


Lesenswert?

Header (in dem dtostrf deklariert ist) nicht eingeladen.

Objektdatei oder Library (in der der Code von dtostrf steht) nicht 
eingebunden.

von Peter II (Gast)


Lesenswert?

Dirk B. schrieb:
> Header (in dem dtostrf deklariert ist) nicht eingeladen.
>
> Objektdatei oder Library (in der der Code von dtostrf steht) nicht
> eingebunden.

deutsch?

schaltet das mal auf englisch um, so versteht das doch kein Mensch was 
wirklich falsch ist.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Henning schrieb:
> Da der von mir verwendete MSP430G2452 einen
> sehr kleinen Flashspeicher hat

Das sind 8 kiB, so wenig ist das nicht.

von Dirk B. (dirkb2)


Lesenswert?

Peter II schrieb:
> deutsch?
>
> schaltet das mal auf englisch um, so versteht das doch kein Mensch was
> wirklich falsch ist.

Die Compilermeldungen sind doch schon auf english.
Die scheint der TO ja auch nicht zu verstehen. :-)

von Henning (Gast)


Angehängte Dateien:

Lesenswert?

Den Screenshop der Fehlermeldungen habe ich angehängt.

von Henning (Gast)


Lesenswert?

> deutsch?
>
> schaltet das mal auf englisch um, so versteht das doch kein Mensch was
> wirklich falsch ist.

Was soll ich auf englisch umschalten? Im Compiler steht alles auf 
englisch.

von Peter II (Gast)


Lesenswert?

Henning schrieb:
> Was soll ich auf englisch umschalten? Im Compiler steht alles auf
> englisch.

jetzt ja, du hast du uns nur etwas deutsches gepostet.

> Header (in dem dtostrf deklariert ist) nicht eingeladen.
>
> Objektdatei oder Library (in der der Code von dtostrf steht) nicht
> eingebunden.

von Mark B. (markbrandis)


Lesenswert?

Henning schrieb:
> Den Screenshot der Fehlermeldungen habe ich angehängt.

Das "function declared implicitly" sieht mir nach einem fehlenden 
#include aus.

Der Linker kann die Funktion dtostrf() nicht finden. Also, wo ist sie? 
Schon mal in den Linker-Optionen nachgeschaut, ob sie dort auch mit 
eingebunden wird?

: Bearbeitet durch User
von DirkB. (Gast)


Lesenswert?

Henning schrieb:
> Was soll ich auf englisch umschalten? Im Compiler steht alles auf
> englisch.


Peter II meinte mich, weil

Dirk B. schrieb:
> Header (in dem dtostrf deklariert ist) nicht eingeladen.
>
> Objektdatei oder Library (in der der Code von dtostrf steht) nicht
> eingebunden.

Und er hat auch richtig zitiert.

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.