SDCC: Problem mit "float-wert"

#7875180
Lesenswert?

Hallo, bei dem Compiler SDCC habe ich ein Problem mit der Anzeige von "float-Werten" bei der Programmierung (Anzeige auf LCD) des MC AT89C51RC2 (8051).

1
float value = 10.00;
2
unsigned int n = sprintf(char buffer[20],"Umfang = %5.2f m",value)
3
lcd_sendstring(buffer);  // Ausgabe Wert Umfang

Der float-Wert value soll als String auf dem LCD ausgeben werden. Die Anzeige ist aber nicht "10.00" sondern "NO FLOAT" Ich habe gelesen das die float-Funktion durch SDCC nicht unterstützt wird. Wie aber kann ich dann einen float-Wert darstellen bzw. damit rechnen ? Mein Hauptproblem ist aber einen geeigneten Compiler für den "AT89C51RC2, AT89S51/52" zu finden: Keil-C: mit der freien Version habe ich ein Problem mit der Code-Größe SDCC: Problem mit Float-Werten

MfG

Juergen

#7875245
Lesenswert?

aus der SDCC Doku: " printf() The default printf() implementation in printf_large.c does not support float (except on ds390), only <NOFLOAT> will be printed instead of the value.

To enable floating point output, recompile it with the option -DUSE_FLOATS=1 on the commandline. Use--model-large for the mcs51port,since this uses a lot of memory."

#7875263
Lesenswert?

Juergen B. schrieb:

Mein Hauptproblem ist aber einen geeigneten Compiler für den "AT89C51RC2, AT89S51/52" zu finden: Keil-C: mit der freien Version habe ich ein Problem mit der Code-Größe SDCC: Problem mit Float-Werten

schau dir mal den Raisonance Compiler an der ist mittlerweile frei verfügbar.

Beitrag "Raisonance vergibt nun RIDE + RKIT-51 Lizenzen kostenlos"

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