UNO mit IDE 1.8.1 und Programmspeicherplatz

Hallo,

ich habe mal wieder ein Problem mit dem Programmspeicherplatz.
Iin0 und Iin1 sind float und werden ganz am Sketchanfang definiert.

Auszug aus dem Sketch.

  Iin0 = analog_Read(ADC0) - 120;                                   // Spannung vom Wandler 200 A - Offset
  Iin0 = -.97 * ((Iin0 * Faktor * 1000) / mVper200Amp);             // Strom ausrechnen

  Iin1 = analog_Read(ADC1) + 3;                                     // Spannung vom ACS712, 20A
  Iin1 = (Iin1 * Faktor * 1000 - 4920 / 2) / mVper20Amp;            // Offset halbe Uss in mV abziehen

Iin0 = 0;
Iin1 = 240;

  Serial.println(F(""));                                            // neue Zeile
  Serial.print(F("Iin0    :"));
  Serial.println(Iin0, 2);
  Serial.print(F("Iin1    :"));
  Serial.println(Iin1, 2);

Damit kommt diese Meldung
er Sketch verwendet 32248 Bytes (98%) des Programmspeicherplatzes. Das Maximum sind 32768 Bytes.
Wenn ich die beiden Zeilen Iin0 = 0 und Ini1 = 240 auskommentiere oder lösche steigt der belegte Platz auf 32284 Bytes. Wieso steigt der wenn ich was rausnehme?

uk1408: Damit kommt diese Meldung er Sketch verwendet 32248 Bytes (98%) des Programmspeicherplatzes. Das Maximum sind 32768 Bytes. Wenn ich die beiden Zeilen Iin0 = 0 und Ini1 = 240 auskommentiere oder lösche steigt der belegte Platz auf 32284 Bytes. Wieso steigt der wenn ich was rausnehme?

Ein Schuss ins Blaue: Der Compiler merkt, dass Du diese Variablen als Konstanten benutzt und legt sie deshalb ins Flash.

Ich bin ja mal gespannt, ob das der Grund ist ...

Gruß

Gregor

Und ohne den gesamten Sketch kann man eh nichts genaues sagen.

Lass Dir doch mal den lesbaren Code ausgeben, der tatsächlich erzeugt wird. Irgendwo gibt mir Combie mal einen Tipp, wie ich es anstellen kann, diesen Code bei jedem Übersetzungsvorgang zu erhalten. Dort müsste zumindest mein Schuss ins Blaue gut erkennbar sein.

Pfff...

Gregor

Ich schätze auch, dass der Kompiler die vorherige Berechnung gnadenlos weg optimiert. Da das Ergebnis nicht genutzt wird, darf er das auch.

uk1408:
Damit kommt diese Meldung
er Sketch verwendet 32248 Bytes (98%) des Programmspeicherplatzes. Das Maximum sind 32768 Bytes.
Wenn ich die beiden Zeilen Iin0 = 0 und Ini1 = 240 auskommentiere oder lösche steigt der belegte Platz auf 32284 Bytes. Wieso steigt der wenn ich was rausnehme?

Programmierst du den Uno mit einem Programmer? Normal ist da 32256 Bytes platz.