Initialisierte Werte in IAR

OP #2531744
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
Moderator Persönliche Seite #2531798
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. ;-)
#2531842
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren