Temperaturanzeige mit TTY

Aus Ethersex_Wiki
Version vom 24. Juni 2009, 20:31 Uhr von Stella (Diskussion | Beiträge) (Die Seite wurde neu angelegt: <pre>CONTROL_START THREAD(update_clock) TTY_SELECT(clock) TTY_HOME() TTY_WRITE_TIME() WAIT(1) THREAD_END(update_clock) THREAD(update_t...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
CONTROL_START

THREAD(update_clock)
        TTY_SELECT(clock)
        TTY_HOME()
        TTY_WRITE_TIME()
        WAIT(1)
THREAD_END(update_clock)

THREAD(update_temp)
        int16_t Temperatur = ONEWIRE_GET(10d85594010800eb);

        TTY_SELECT(temp)
        TTY_HOME()
        TTY_WRITE(`"%2d,%d"', Temperatur / 10, Temperatur % 10)

        WAIT(10)
THREAD_END(update_clock)

ON STARTUP DO
        TTY_CLEAR()
        TTY_WRITE("Moin stesie\n")

        TTY_CREATE_WINDOW(clock, 1, 8, 1, COLS - 8)
        THREAD_START(update_clock)
        TTY_CREATE_WINDOW(temp, 1, 4, 1, 0)
        THREAD_START(update_temp)
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.