Forum: Mikrocontroller und Digitale Elektronik Gleitkommazahl auf LCD ausgeben ;-(


von Max S. (maxmuenchen)


Lesenswert?

hi, ich habe eine Frage und zwar möchte ich eine gemessene Spannung auf 
dem LCD ausgeben.
Habe folgenden Code geschrieben:


///////////////////////////////////////////////////////////////////////
ADC_Value = ADCL;                //Die beiden 8Bit Variablen werden in 
die 16 Bit Variable geschrieben
ADC_Value +=(ADCH<<8);               //ADC_Value geschrieben

  Spannung=Steigung*(float)ADC_Value;
//auch ohne casten funktionierts nicht

  sprintf(str,"%f",Spannung);
  //sprintf(str+4, "%c", " V");

      lcd_clear();
      lcd_setcursor(0,1);
      lcd_string(str);
      for(i=0;i<5;i++)
      _delay_ms(50);
///////////////////////////////////////////////////////////////////////

da bei 0V auch ungefähr 0 in ADV_Value stehen, kann ich das mit einer 
simplen Geradengleichung aufbauen.

das Probelm ist dann nur die Kommazahl Spannung auf dem LCD auszugeben.
habs im MS Visual Studio probiert, da klappts hervorragend, aber hier 
steht an 1. Stelle in str ein "?" und danach nur kaudawelsch.
weis einer wieso??
viele dank

von Vlad T. (vlad_tepesch)


Lesenswert?


von Max S. (maxmuenchen)


Lesenswert?

danke für deine Antwort, aber hilft mir jetz ehrlich gesagt auch nix 
weiter.

von Vlad T. (vlad_tepesch)


Lesenswert?

dann lies den Abshnitt nochmal

besonders den Absatz über Limitations, bzw Limitations selbst.

von soundso (Gast)


Lesenswert?

AVR und GCC ???

dabei müsstest du noch die libraries für float richtg nutzen, sprich die 
richtigen für sprintf, admit ein float wert raus kommt und nicht ein ?

gruss soundso

von soundso (Gast)


Lesenswert?

das zauberwort heist: libprintf_flt.a

von Barny (Gast)


Lesenswert?

Warum berechnest du denn nicht das Ganze in Zentel-/Hundertstel-Volt?
Da spart man sich die Float-Berechnung.
Man braucht dann nur den Komma-Punkt an die richtige Stelle setzen und 
hat das Ergebnis in Volt.

Wenn man mehr Stellen benötigt, kann man auch in Millivolt rechnen.
Man muss nur aufpassen, dass es keinen Überlauf gibt.

von Falk B. (falk)


Lesenswert?

Besser als Gleitkomma ist oft Festkommaarithmetik

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.