Umwandlung von Integer auf float und dann in string

OP #4671242
Lesenswert?

Hallo zusammen,

ich möchte Werte von A/D Wandler (ADS1118)mit Hilfe des LCD(HD4470) 
auslesen. Die Werte, die ich rauskriege, sind von Datentyp Integer aber 
ich möchte in Float und dann in string umwandeln.
das hab ich mir überlegt:

               float f1, f2;

    ADC_Wert = ADC_Read(config_msb,config_lsb); // Datentyp int
    f1 = ADC_Wert;
    f1 = f2;
    f2 = ((f1*2.048)/(float)(32767*0.005*5));
    //my_IntToString(ADC_Wert,buff,5);

    sprintf(buff,"%f",f2);

ich bekomme leider immer nur eine Fragezeichen(?) auf dem Display. wie 
kann ich das lösen!!!
Ich freue mich auf Ihre Antwort und bedanke mich im voraus.

LG
Grosso
Gast #4671245
Lesenswert?

Printf der avr C Library kann nur dann Floats ausgeben, wenn man dazu 
eine spezielle Library einbindet.

Füge in das Makefile ein:
1
# Enable floating-point support in printf
2
LDFLAGS += -Wl,-u,vfprintf -lprintf_flt -lm
#4671255
Lesenswert?

El G. schrieb:
> (32767*0.005*5)

macht den konstanten Wert 819,175.

sowie

f2 = ((f1*2.048)/(float)(32767*0.005*5));
entspricht
f2 = (f1 x Zahl1) / Zahl2
also
f2 = f1 * (Zahl1/Zahl2), hier also 2048 / 819,175 = 2,50007629627369

--> Ich hätte jetzt einfach mal deine f1 x 2.5 gerechnet. Oder was genau 
bezweckst du mit dieser "Kalkulations-Grundlast" bei jedem 
Wandler-Vorgang?
Gast #4671269
Lesenswert?

@El Grosso

Kann es sein, dass Du in Wirklichkeit eine Art Beschäftigungstherapie 
für deinen µP aufgebaut hast.
Eventuell für thermische Betrachtungen.

Natürlich sind Dein Rechner sowie die Entwicklungsumgebung geheim. Leute 
die Dir antworten wollen, sollen ruhig, kräftig im Nebel herumstochern.

Zu deiner Rechnung: Die ist sinnlos, falsch und unnötig aufgeblasen.

Die potentiellen Helfer sollen also ruhig noch ein wenig Raten...
#4671570
Lesenswert?

Stefan U. schrieb:
> Optimiert der Compiler diese Berechnung nicht sowieso zu einer simplen
> Multiplikation?
ein guter Compiler ja.
Und es "ist" meistens :) besser, den code leserlich und logisch zu 
lassen, anstatt superoptimalen code zu schreiben, den man nach ein par 
Monaten (selbst mit Kommentaren) nicht mehr genau versteht. Aber 
Ausnahmen bestätigen wie immer die Regel.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren