Gleitkommazahl auf LCD ausgeben ;-(

OP #2077703
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
Gast #2077847
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.

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