Temperaturanzeige mit TTY: Unterschied zwischen den Versionen
Stella (Diskussion | Beiträge) K |
K (Fix Zeilenumbruch) |
||
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
<pre>CONTROL_START | <pre>CONTROL_START | ||
− | THREAD( | + | 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_SELECT(temp) | ||
TTY_HOME() | TTY_HOME() | ||
− | TTY_WRITE(`"% | + | TTY_WRITE(`"%5sC"', temp_str) |
− | WAIT( | + | WAIT(2) |
− | THREAD_END( | + | THREAD_END(temploop) |
ON STARTUP DO | ON STARTUP DO | ||
+ | dnl Initialize display and write out greeting | ||
TTY_CLEAR() | TTY_CLEAR() | ||
− | + | TTY_HOME() | |
+ | |||
+ | TTY_CREATE_WINDOW(temp, 1, 6, 0, COLS-6) | ||
+ | |||
+ | THREAD_START(temploop) | ||
− | + | END | |
− | |||
− | |||
− | |||
− | END | ||
CONTROL_END | CONTROL_END | ||
Zeile 33: | 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 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