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?