Forum: Mikrocontroller und Digitale Elektronik Frage zu Festkommaarithmetik und Array


von soundmachine123 (Gast)


Lesenswert?

Hallo libe Mikrocontrollergemeinde,

ich hoffe Ihr könnt mir erneut weiterhelfen.
>Ich bin gerade dabei eine Raumtemperaturerfassung zu programmieren.
Ziel ist es in jeden Zimmer ein Display zu besitzen, in dem für 
verschiedene Zeiten verschiedene Temperaturen eingegeben werden können, 
die Elektronik überwacht die Temperatur und steuert die elektrischen 
Ventile der Fußbodenheizung, zudem geht die ganze Geschichte per 2 
Drahtbus an die SPS, dei die restlichen Hauselemente steuert. So weit so 
gut. Da ich beruflich doch jetzt eher in die SPS Ecke angedriftet bin 
gibt es nun hier ein paar Kleinigkeiten die mich aufhalten.

Ich habe ein Array aus float Werten. Mit 2 Tastern kann ich einen 
Integerzeiger erhöhen, erniedrigen und somit wird einfach im Menü 
geblättert, d.h. jedesmal wenn der Zeiger eine andere Zahl hat wie im 
alten durchlauf wird das Display erneut beschrieben, nun mit dem Wert 
der an der neuen Zeigeradresse steht. Das Funktioniert sehr gut, 
allerdings Blättere ich immer zwischen Zeiten udn >temperaturen hin und 
her die sich in einem Array befinden.

Für die Zeiten (Stunden Minuten) würden ja int Werte genügen. Für die 
Temperatur ebenso, wenn man die Einheit auf 1/10°C festlegt.
Wenn das Array nun ein int Array wäre, gäbe es dann die Möglichkeit, den 
Integerewert bei der Temperatur so zu verschieben und als Kommawert 
auszugeben, wie es für den Benutzer sinnvoll wäre? ich benutze bisher 
die funktion sprintf um einen <String zu erstellen, gibt es da die 
Mögliochekit irgendiwe die Kommastelle virtuell zu verschieben? AUf SPS 
Seite wäre das ein "Klick ;-)

Hoffe Ihr könnt die Problematik verstehen, über jede ernst gemeinte 
Anregung bin ich wie immer sehr dankbar!

von Stefan (Gast)


Lesenswert?

Hallo,

angenommen du hast einen Temperaturwert temp (Integer auf 1/10°) 
dannschreibst du einfach

sprintf( string, "Temperatur: %2d.%d", temp/10, temp%10 );

und schon hast du im string "Temperatur: 20.3" wenn temp=203 ist

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.