Temperaturanzeige mit TTY

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
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