Benutzung von Flashspeicher

OP #4559865
Hallo zusammen

Ich bin derzeit an einem Projekt dran, bei dem ich unter anderem den 
gemessenen Lux Wert in candela/m2 umrechnen muss, was aber ganz einfach 
mit einer linearen funktion passiert. (Ich arbeite mit einem SAMD09)
Memory (derzeit):
Program Memory Usage   :  9308 bytes   56.8 % Full
Data Memory Usage   :  4064 bytes   99.2 % Full

Wenn ich nun bei meiner Candela Berechnung den Wert zurückgeben will, 
erhöht sich der Flash Speicher dabei auf

Program Memory Usage   :  16976 bytes   103.6 % Full(Memory Overflow)
Data Memory Usage   :  4064 bytes   99.2 % Full

Das man durch eine einfach y = mx + k Rechnung fask 8kB an RAM Speicher 
braucht scheint mir ein wenig schleierhaft.

Hier ist der Übeltäter:

/* y = mx + k */
/* Steigung wird hier mit Zwei Punkten mit x und y berechnen */
double m =  (1/ (double) denominator) *(double) numerator;
/* Gleichung nach k Auflösen und Punkt einsetzten */
double k = (double) lowerLuminancePoint - (m * 
(double)lowerAmbienceLightPoint);

double tmpValue =  m * (double) lux;
uint16_t candelaValue =  (uint16_t) (tmpValue + k);

Wenn ich jetzt hier "candelaValue" als return zurückgebe oder in eine 
globale Variable schreibe erhalte ich 8kB mehr Flashspeicher Nutzung?

Weiss jemand was hier der Fehler ist?
#4559869
@  Patrick Schmelzer (patricksch)

>Hier ist der Übeltäter:

>Wenn ich jetzt hier "candelaValue" als return zurückgebe oder in eine
>globale Variable schreibe erhalte ich 8kB mehr Flashspeicher Nutzung?

Da wird relativ knallhart die Fließkommabibliothek eingebunden und die 
scheint auf deinem System nicht sonderlich sparsam zu sein. Hier reicht 
wahrscheinlich Festkommaarithmetik.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 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.