Berechnung im Mega

Gast #1264031
Hallo allerseits,

Ich habe eine grundsätzliche Frage zu Berechnungen in einem uC. Und zwar 
muss ich eine Division durchführen, wo im Zähler eine Menge 
Multiplikationen kombiniert mit Additionen und Subtraktionen stehen. Der 
Nenner sieht ähnlich aus. Nun, wenn ich diese Berechnung programmieren 
sind gut 50% des Flash belegt.
Wie macht man sowas normalerweise? Tippt man einfach die Funktion ein, 
oder macht man das über andere Wege?

Bin gespannt auf eure Antworten!

Vielen Dank,
Andy
Gast
Ich wüsste nicht wie ich alleine mit Berechnungen so viel Platz brauchen 
könnte...
Allgemein solltest du alles was vorher berechenbar ist, auch so 
machen...
Jeder Zwischenwert den der uC nicht berechnen braucht, ist gesparte Zeit 
& Platz.

Schreib doch mal diese Formel hier rein ;)

Gruß Anselm
Gast
>Nun, wenn ich diese Berechnung programmieren
>sind gut 50% des Flash belegt.

Dann sind ja noch 50% frei ;) Wo ist das Problem?

>Wie macht man sowas normalerweise?

Das hängt meistens vom jeweiligen Fall ab.
Man muß halt schauen wo sich etwas optimieren lässt.
Gast
Zuerst sollte mach sich ueberlegen, ob man Float wirklich braucht, oder 
ob die Funktionalitaet auch mit Ganzzahlrechnungen erreicht werden kann.

Falls, ja. Ist die Berechnung fuer den Benutzer ? zB fuer einen LCD, 
dann braucht man davon keine 10000 updates pro sekunde, sondern 
vielleicht eine, oder zwei.

Moeglicherweise kann man die Rechnung auch vereinfachen, zB einen 
Exponential, oder trigonmetrischen auch durch durch ein Polynom 
ersetzen.
Gast
>Nun, wenn ich diese Berechnung programmieren
>sind gut 50% des Flash belegt.

Da die float-Routinen nur jeweils einmal eingebunden werden, hast du 
damit fast alle drin, und ab jetzt kannst du fröhlich drauf los rechnen, 
ohne das der Code sich nochmals um soviel vergrößert.

Also, programmier erst einmal weiter, und schau, was passiert. Hilfreich 
ist dabei, den Code mit -Os auf minimale Größe zu optimieren.

Oliver
Andy schrieb:
> Nenner sieht ähnlich aus. Nun, wenn ich diese Berechnung programmieren
> sind gut 50% des Flash belegt.

Warscheinlich werden auch noch 264 Byte SRAM mehr benötigt. Dann hast du 
den Linkerschalter -lm vergessen.


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.