ADC Temperatur Nachkommastelle

Gast #563155
Lesenswert?
• ▲
▼
Hallo zusammen,

also wie dem Betreff schon zu entnehmen ist, möchte ich gerne die 
Temperatur mit einer Nachkommastelle auf dem Display ausgeben.
Ich verwende dabei einen AD 22100 KT an einem ATMega16-DIP (am ADC1)
Die Ausgabe der Temperatur auf dem Display ohne Nachkommastellen 
funktioniert bereits, und die Umwandlung des ADC Wertes in einen 
richtigen Temperaturwert auch..
Jetzt stellt sich mir die Frage, wie ich das anstellen könnte, das ich 
die 1. Nachkommastelle auch noch angezeigt bekomme...

Also damit berechne ich bisher die Temperatur:
int ADC2Deg(int TempVal)
{

  return (((220000/1024*TempVal)/1000)-60);
  //return 
((TempVal-Min_ADC_Wert)*((MaxTemp-MinTemp)/(Max_ADC_Wert-Min_ADC_Wert))+ 
MinTemp);
}

so das ist jetzt noch alles in int, müsste dann logischerweise in float 
und diese floatzahl, also das Ergebnis müsste ich dann in zwei int Werte 
umwandeln, und zwar z.B. int VorKomma und int NachKomma

Aber daran bin ich bisher gescheitert....

In C ganz normal oder C++ könnte ich mich der Funktion sprintf(); 
bedienen, was hier nicht möglich ist, da ih dafür extra wieder bibs 
einbinden müsste und so zu viel speicher und rechenzeit "verschwenden" 
würde...

Ich hoffe ich konnte mein Problem anschaulich darstellen und das mir 
geholfen werden kann...
Gast #563168
Lesenswert?
• ▲
▼
Rechne einfach in 1/10°C Auflösung! Vermeide float-Berechnungen!!! Die 
kosten nur Zeit und sind überflüssig! D.h. eine "1" in integer bedeutet 
dann 1/10°C, int(10)==1.0° int(255)==25.5° usw. Du must dann natürlich 
auf den Zahlenbereich (8bit/16bit) aufpassen, also int16_t nehmen. Der 
Dezimalpunkt ist dann einfach an einer fixen Stelle. Im Prinzip must Du 
in Deiner Formel die vorgegebenen Min-Max Temperaturen einfach mal 10 
nehmen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.