Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Die Hilfsvariablen werden im Debugger wie folgt angezeigt:
A1 = 2012.16
A2 = 1995
A3 = 1995.52
Ich hätte erwartet dass 2012f16 = 2012.0 ist.
Aus welchem Grund muß zwingend 2012.0f16 benutzt werden?
De Fakto ist aber auch manuell keine Lösung möglich weil durch einen Fehler in der convert-Funktion selbst A = 2012.0f16 - convert(2012u16 / 19u16 * 19u16, 0f16) keine 17.0 ergibt, sondern 16.64.
aus meiner Sicht gibt es in diesem Thema zwei ToDos für Euch.
Die mod-Funktion sollte entweder generell nicht mit Fließkommazahlen funktionieren, also einen Compiler-Fehler liefern und so auch dokumentiert sein, oder aber wie in anderen Programmiersprachen auch mit Fließkommazahlen ein korrektes Ergebnis liefern. Aktuell liefert die Funktion bei Nutzung von f16 oder f32 Werten immer das Ergebnis 0.0
Die Funktion convert(2012u08, 0.0f16) liefert zur Zeit die Rückmeldung 2012.16f16, erwarten würde ich hier 2012.0f16. Bitte überprüft was die Ursache dafür ist. Das 1-Wire Makro von Bernd liefert aus dem gleichen Grund z.B. bei 85°C den Wert 85,04°C.
De Fakto ist aber auch manuell keine Lösung möglich weil durch einen Fehler in der convert-Funktion selbst A = 2012.0f16 - convert(2012u16 / 19u16 * 19u16, 0f16) keine 17.0 ergibt, sondern 16.64.
Versuch doch mal den wesentlichen Schritt zu Kapseln:
A = 2012.0f16 - convert( convert(2012u16 / 19u16, 0u16) * 19u16, 0f16)
Meine Vermutung ist eher ein Problem in der Darstellung von f16, was ja schon 2012f16 zeigt. Wenn der eibPC zur Berechnung bereits in f16/f32 konvertiert und dadurch die Nachkommastellen behält, diese aber auch noch falsch sind, wäre es eine Erklärung für den Fehler.
Ob natürlich am Ende auch intern convert() für die Umwandlung in unterschiedliche Darstellungen verwendet wird ...
Die Funktion convert(2012u08, 0.0f16) liefert zur Zeit die Rückmeldung 2012.16f16, erwarten würde ich hier 2012.0f16.
Darüber ärger und beschwer ich mich ja glaub ich schon seit einem Jahr. Aussage von Michael war sinngemäß "Genauer geht es aufgrund der KNX-Logik nicht". Was m. E. unlogisch ist, weil a) der EibPC sich intern nicht an das KNX-Varibalen-Format halten muss und b) auch damit ein 2012.0 abbildbar ist.
Eigentlich wollte Michael das an seine Firmware-Jungs geben, aber Rückmeldung ahb ich dazu noch keine....
....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar