www.mikrocontroller.net

Forum: Compiler & IDEs ADC einlesen und umwandeln / vergleichen


Autor: earlyperl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
ich versuche die Temperatur mit einem KTY über ADC einzulesen,
ich konvertiere den angekommenen Wert mit:

void lcd_dez(int tmp)
{
    char buffer[10]={0};
    sprintf( buffer, "%d", tmp);

}

Ich benötige lediglich den Temperaturbereich zwischen 90 und 100°C
deshalb ist keine kallibrierung nötig, ich möchte die gemessenen
Temperaturen einfach umwandeln und auf einem LCD ausgeben, etwa so:

if(buffer=="175"){
lcd_write("23.0");
}

Das funkioniert natürlich nicht, kann mir jemand nen Anstoß zur
Umwandlung geben, oder ne Alternative vorschalgen?

Grüße
earlyperl

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Umwandlung mittels sprintf ist durchaus in Ordnung.
sprintf ist zwar eine "teure" Funktion (Speicherverbrauch), aber
wenn du den Speicher hast, was solls. Eine Alternative zu sprintf
wäre zB itoa(), falls dein Compiler die Funktion zur Verfügung
stellst.

Das allerdings
   if( buffer == "175" )

funktioniert nicht. So kann man Strings nicht auf Gleichheit
überprüfen. Das obige ist ein Vergleich ob 2 Pointer den gleichen
Inhalt haben.

So gehts

#inclde <string.h>

...

    if( strcmp( buffer, "175" ) == 0 )
      lcd_write( "23.0" );

Beim Arbeiten mit Strings (Kopieren, Anhängen, Vergleichen, etc)
immer die str... Funktionen benutzen.

Und Bücher kaufen. Das ist das kleine Ein*Eins der C Programmierung.

Autor: earlyperl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
vielen Dank für die schnelle Hilfe!
Auch die Itoa()-Funktion gefällt mir besser.

Grüße
earlyperl

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.