Hallo Micha,

Zitat Zitat von M_I_B Beitrag anzeigen
Ok, wie gesagt tut es nun (VarTypen angepasst), aber natürlich hätte ich nichts dagegen, wenn von Euch noch ein paar andere Lösungen kommen, damit ich vielleicht eine andere Denkweise bei solchen Sachen erlernen kann...
Prozessoren ohne FPU müssen Fliesskommaberechnung über eine Bibliothek erledigen. Diese braucht einiges an Platz im ROM und ist etwa 100x langsamer als eine FPU.

Es macht also in vielen Fällen Sinn, Fliesskommaoperationen zu vermeiden.

Es kann also Sinn machen, wenn du alles in mV und mA rechnest, dann kommst du mit Integern durch.

Und anstatt
x *0.47
zu rechnen, was eben nur mit Fliesskomma geht, kann man auch
(x * 100) / 47
rechnen, was mit Integern geht (Allerdings muss man aufpassen, dass (x *100) in jedem Fall noch in den gewählten Integer passt. Obwohl du eine Multiplikation und eine Division machen musst, ist das oft als Integerrechnung schneller als eine einzelne Fliesskomma-Multiplikation.

Bei der Ausgabe muss man dann den Dezimalpunkt an der richtigen Stelle einsetzen, aber das geht rein über Textmanipulation.

Ich kann mich nicht erinnern, dass ich in den letzten 30 Jahren auf einem Microcontroller einmal Fliesskommaoperationen gebraucht habe. Selbst bei der Linearisierung eines NTC lässt sich so umformen, dass man mit Integern zurecht kommt. Im professionellen Bereich bedeuten mehr ROM und mehr Rechenleistung immer auch höhere Kosten, welche man dann mit den Stückzahlen multiplizieren muss.
Wie schon gesagt, ich habe da dann auch mal mit 1/40tel Grad gerechnet (wegen den Rundungsfehlern, gefordert waren nur 1/10 Grad).

MfG Peter(TOO)