Forum: Compiler & IDEs Gleitkommazahl mit mspgcc ausgeben


von Wolfgang-G (Gast)


Lesenswert?

Während der folgende Programmschnipsel mit IAR Kickstart funktioniert, 
wird mit mspgcc ein f gefolgt von einigen Zeichen angezeigt.
was könnte ich falsch machen?


#include <MSP430x16x.h>        // für MSP430F1610
#include <string.h>            // für Zeichen (Infotext) notwendig
#include <stdio.h>             // für sprintf
#include  <io.h>

float wert3=12.34;


void Wert3_ausgeben(void)
{

   char z,c;
   char txt[8];

   sprintf(txt,"%f",wert3);  // lf für 32Bit

   for (z=0; z<8;z++)
   {
   c=txt[z];
   Daten_schreiben(c);
   }
}


void Daten_schreiben(unsigned char d)// Daten ins Datenregister der 
Anzeige schreiben
{
                         //     6.7    6.6   6.5    6.4
  P6OUT = 0x50;   // RS+E  =H     x     H     L      H
  E_H;            // E = P6.6 = H
  P1OUT=d;
  E_L;
  Pause1000();
}

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

AUs Gründen der Platzersparnis gibt es unterschiedliche 
printf/scanf-Libraries, welche mit und welche ohne Float-Unterstützung. 
Du linkst offensichtlich mit einer ohne Float-Unterstützung.

von Patrick D. (oldbug) Benutzerseite


Lesenswert?

@Rufus:
Wenn ich mich recht erinnere trifft das für die MSPGCC-Library nicht zu.

...falls sich da in den letzten Monaten nichts geändert hat...

von Wolfgang-G (Gast)


Lesenswert?

Das bringt mich noch nicht so richtig weiter. Bestimmt hat schon jemand 
Erfahrung damit.
Es wäre schön, wenn ich davon profitieren könnte.
MfG
Wolfgang

von Christian R. (supachris)


Lesenswert?

Es gibt ganz einfach für den mspgcc keine Floating-Point Lib für sscanf 
usw.
Musst du zu Fuß machen.

von Wolfgang-G (Gast)


Lesenswert?

na dann, auf zu Fuß
Wolfgang

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.