ADC einlesen und umwandeln / vergleichen

Gast #412030
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
#412031
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.

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