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
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.
Hallo, vielen Dank für die schnelle Hilfe! Auch die Itoa()-Funktion gefällt mir besser. Grüße earlyperl
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.