Temperaturanzeige mit TTY
Version vom 13. Juli 2010, 10:00 Uhr von Albrecht (Diskussion | Beiträge) (Temperaturanzeige auch für negative Temperaturen)
CONTROL_START THREAD(temploop) int16_t Temperatur = ONEWIRE_GET(ONEWIRE-ID); dnl max. Länge des erzeugten Strings: 5 (123.4 bzw. -12.3) char temp_str[5]; itoa_fixedpoint(Temperatur, 1, temp_str); TTY_SELECT(temp) TTY_HOME() TTY_WRITE(`"%5sC"', temp_str) WAIT(2) THREAD_END(temploop) ON STARTUP DO dnl Initialize display and write out greeting TTY_CLEAR() TTY_HOME() TTY_CREATE_WINDOW(temp, 1, 6, 0, COLS-6) THREAD_START(temploop) END CONTROL_END
- Die Onewire-ID sollte natürlich angepasst werden. Vorher im Zweifel mit 1w list abfragen, welche angeschlossen sind.
- Die lokale Variable Temperatur dient zum Zwischenspeichern des Ergebnisses von ONEWIRE_GET, da der Sensor ansonsten zweimal abgefragt werden müsste. Nachdem kein WAIT oder ähnliches dazwischen ist, sollte diese auch kein Problem darstellen.
- mit itoa_fixedpoint wird die Temperatur (Festkommazahl mit einer Nachkommastelle) in einen String umgewandelt. Inklusive - bei negativen
Temperaturen