www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC Temperatur Nachkommastelle


Autor: Pete (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.