Hallo habe eine Frage,kann man folgende Formel
effizienter berechnen? da es aufm Mikrocontroller schon sehr ineffiziente Berechnung ist Danke für eure Hilfe
|
Forum: PC-Programmierung Effiziente Berechnung einer FormelHallo habe eine Frage,kann man folgende Formel effizienter berechnen? da es aufm Mikrocontroller schon sehr ineffiziente Berechnung ist Danke für eure Hilfe z.B. (U1 - U0) / (U1 * U0) Damit hast du eine Division durch eine Multiplikation ersetzt. ich schrieb: > z.B. > > (U1 - U0) / (U1 * U0) > > Damit hast du eine Division durch eine Multiplikation ersetzt. Ich stimme "ich" zu, ist aber nicht zwangsweise die Lösung für Martin. Wichtig ist immer noch der Wertebereich! Vor allem bei einem 8 Bit CPU, und für die Lösung von "ich" muss dieser grundsätzlich grösser sein => Also aufpassen! mfg Andreas Andreas B. schrieb: > Wichtig ist immer noch der Wertebereich! Vor allem bei einem 8 Bit CPU, > und für die Lösung von "ich" muss dieser grundsätzlich grösser sein => > Also aufpassen! das ist trotzdem nix im Vergleih zu einer SW-Division Vlad Tepesch schrieb: > Andreas B. schrieb: >> Wichtig ist immer noch der Wertebereich! Vor allem bei einem 8 Bit CPU, >> und für die Lösung von "ich" muss dieser grundsätzlich grösser sein => >> Also aufpassen! > > das ist trotzdem nix im Vergleih zu einer SW-Division Dies war ein Hinweis auf eine mögliche Fehlerquelle und hat nur zweitranging mit der Effizienz zu tun, da Martin ja nicht genannt hat was für eine CPU er verwenden wird... mfg Andreas Ist der Wertebereich einschränkbar? Dann würde ich eine Lookuptable anlegen (ergebnisse am PC berechnen und im Flash abspeichern). Ansonsten kannst du auch einen CORDIC-Algorithmus für die Division implementieren, der dürfte schnell genug sein... Martin schrieb: > effizienter berechnen? da es aufm Mikrocontroller schon sehr > ineffiziente Berechnung ist Einerseits, wie bereits gesagt, durch Umstellen der Gleichung. Andererseits aber auch durch effiziente Implementationstechniken. Das hängt aber sehr von diversen Faktoren Wertebereich und Auflösung von Input und Output, geforderte Genauigkeit, geforderte Geschwindigkeit, Möglichkeit für Näherungslösungen, usw. am effizientesten wäre es vermutlich, sich eine CPU zu suchen, bei der man sich nicht schon bei einer lächerlichen Division um Geschwindigkeit sorgen machen muss im Zeitalter von GHZ octocore cpus, kann das ja nicht so schwer sein ps. geht es hier eigentlich um INT oder Fließkomma ?? >Ich tipp auf boolean ;-)
da würde dann auch die, weiter oben angesprochene, lookup-tabelle Sinn
machen ;-)
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.
|
|