Temperaturanzeige mit TTY: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
(Temperaturanzeige auch für negative Temperaturen)
K (Fix Zeilenumbruch)
 
Zeile 30: Zeile 30:
 
* Die ''Onewire-ID'' sollte natürlich angepasst werden.  Vorher im Zweifel mit '''1w list''' abfragen, welche angeschlossen sind.
 
* 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.
 
* 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  
+
* mit ''itoa_fixedpoint'' wird die Temperatur (Festkommazahl mit einer Nachkommastelle) in einen String umgewandelt. Inklusive ''-'' bei negativen Temperaturen
Temperaturen
 
  
 
[[Category:Control6 Examples]]
 
[[Category:Control6 Examples]]

Aktuelle Version vom 13. Juli 2010, 10:01 Uhr

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