Forum: Compiler & IDEs Initialisierte Werte in IAR


von Owen S. (senmeis)


Lesenswert?

Servus,

ich habe eine merkwürdige Erscheinung in IAR erfahren. Siehe Code unten.

Fall 1:
1
float V_ADC = 2.5;
2
for(;;) // main loop
3
{
4
  Ausgabe(V_ADC);
5
}

Fall 2:
1
float V_ADC;
2
for(;;) // main loop
3
{
4
  V_ADC = 2.5;
5
  Ausgabe(V_ADC);
6
}

Im ersten Fall bleibt der Wert 2.5 nur bei der ersten Schleife erhalten, 
danach immer 0.
Im zweiten Fall ist alles OK.

Keine Optimierungen werden benutzt.
Hat jemand gleiches Problem?

Gruss
Owen

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Owen Senmeis schrieb:

> ich habe eine merkwürdige Erscheinung in IAR erfahren.

Dann bist du hier eigentlich falsch, denn das ist das GCC-Forum ...

> Siehe Code unten.

Der Code lässt sich so nicht compilieren/linken.

Der Fehler ist, wie immer, in Zeile 42 zu suchen ... meint zumindest
meine Kristallkugel.  Kann natürlich sein, ich muss die mal wieder
in die Reparatur geben. ;-)

von Karl H. (kbuchegg)


Lesenswert?

Owen Senmeis schrieb:

> Fall 1:
>
1
float V_ADC = 2.5;
2
> for(;;) // main loop
3
> {
4
>   Ausgabe(V_ADC);
5
> }
>
> Fall 2:
>
1
float V_ADC;
2
> for(;;) // main loop
3
> {
4
>   V_ADC = 2.5;
5
>   Ausgabe(V_ADC);
6
> }
>
> Im ersten Fall bleibt der Wert 2.5 nur bei der ersten Schleife erhalten,
> danach immer 0.
> Im zweiten Fall ist alles OK.

Stell ein komplettes Programm zusammen, welches den Fehler zeigt. Wenn 
du magst stell es nochmal hier rein, damit wir mal drüberschauen ob du 
nicht irgendwo anders die C-Regeln verletzt hast und wenn sich dein 
Problem bestätigt, dann schickst du es an IAR. Die dürften daran hoch 
interessiert sein.

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.