Hallo, könnte mir jemand bitte sagen ob folgende Code-Zeile so funktionieren könnte. Schwelle = (u16)((Sum_mittel * Faktor) + Offset); Sum_mittel ist unsigned int (16-Bit) Faktor und Offset ist float Schwelle ist wieder unsigned int (16-Bit) Faktor und Offset sind immer positiv. Danke, Gruß Tobias
Hallo klare Antwort Jain. Je nach Wertebereich Deiner Variablen wird es Funktionieren oder nicht. ciao
Klare Antwort Ja. Der Code ist syntaktisch richtiger C-Code, und wird damit immer genau das machen, was der C-Standard dafür vorschreibt (wenn der verwendetet Compiler keine Macke hat). Ob das, was nach C-Standard da passieren soll, auch das ist, was du dir vorstellst, ist eine andere Frage. Oliver
> Je nach Wertebereich Deiner Variablen wird es Funktionieren oder nicht.
Nimm zum Beispiel einfach mal für Faktor den Wert 0.0001 und für Offset
den Wert -234567.89 und schon funktionierts nicht mehr... :-/
Wie gesagt, Faktor und Offset sind immer POSITIV. Ein Überlauf von Schwelle ist auch ausgeschlossen. Mich interessiert mehr ob das mit dem Umwandeln von einer vorzeichenbehafteten Zahl in eine vorzeichenlose Zahl so passt.
> und für Offset den Wert -234567.89 passt eh nicht zu > Faktor und Offset sind immer positiv.
Wie gesagt: Der Syntax ist korrekt. Aber ob du damit glücklich wirst hängt vom Wertebereich und der geforderten Auflösung ab. Du must sicherstellen das kein Über/Unterlauf passiert und noch genug Auflösung bleibt. Kommen Faktor und Offset von einer Kalibrierung, kann man davon ausgehen das es Past. Sind das Handeingaben, würde ich auf jedenfall auf den zulässigen Bereich prüfen. ciao Volker
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.