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