Forum: Mikrocontroller und Digitale Elektronik Schleifen im Code Composer Studio von TI


von Crash (Gast)


Lesenswert?

Hallo !

Ich arbeite mit dem:
Code Composer Studio Essentials von TI
Version: 4.0.1.01001

Zuvor hatte ich IAR verwendet. Mit IAR hatte ich mein Code soweit, daß 
er compiliert wurde.
Nun musste ich auf CCSE wechseln und hab 22 Errors beim compilieren.
Soweit wundert mich das nicht, nur sind da echt schwachsinnige Sachen 
dabei.

zB eine ganz normale Forschleife
1
for(int i=0;i<10;i++)
2
{...}
Wird mit "unknown identifier 'i'" kommentiert... das verstehe ich schon 
mal nicht so ganz ...

Gut, ich habe mich aber kompromissbereit gezeigt und die Schleife so 
geschrieben:
1
int i =0;
2
for(i=0;i<10;i++)
3
{...}

Nun gibts aber immernoch einen Error bei der Forschleife..."expected a 
declaration" ...
Was hab ich falsch gemacht??


Auch bei der Whileschleife
1
while(1)
2
{...}
in der main()-Funktion meckert der Compiler. (auch "expected a 
declaration")


Was kann/muss ich verbessern?

Danke schon mal für Eure Hilfe,
Gruß
Crash

von Hannes H. (mui)


Lesenswert?

Crash schrieb:

> Gut, ich habe mich aber kompromissbereit gezeigt und die Schleife so
> geschrieben:
>
1
int i =0;
2
> for(i=0;i<10;i++)
3
> {...}
>
die Variablendefinition muss immer ganz am Anfang der Funktion stehen - 
darauf geachtet?

> Nun gibts aber immernoch einen Error bei der Forschleife..."expected a
> declaration" ...
> Was hab ich falsch gemacht??
>
>
> Auch bei der Whileschleife
>
1
while(1)
2
> {...}
> in der main()-Funktion meckert der Compiler. (auch "expected a
> declaration")
>
hmm... kann ich so auch nichts zu sagen - poste dochmal den Quellcode

VG,
mui

von Crash (Gast)


Lesenswert?

Hallo Hannes!

Danke für Deine Antwort.
Ich hatte in der ersten Zeile der main() das hier stehen:
1
// Stop watchdog timer
2
WDTCTL = WDTPW + WDTHOLD;

nachdem ich es auskommentiert hatte waren die Meldungen bezüglich 
"expected a declaration" weg.

Also wie Du sagtest, die VarDefinition muss am Anfang stehen. Danke für 
diesen Hinweis!

Aber ich habe noch keinen Compiler benutzt der das so genau nimmt ...
WinAVR, Bloodshed und andere haben mir immer die
1
for(int i=0;i<10;i++)
Schleifen durchgehen lassen ...


Vielen Dank nochmals für die schnelle Hilfe :)  :)

Gruß
Crash

von Karl H. (kbuchegg)


Lesenswert?

Crash schrieb:

> Aber ich habe noch keinen Compiler benutzt der das so genau nimmt ...
> WinAVR, Bloodshed und andere haben mir immer die
>
1
for(int i=0;i<10;i++)
> Schleifen durchgehen lassen ...

Das ist meines Wissens erst mit C99 erlaubt worden.
Im vorhergehenden Versionen war das schon immer so, dass 
Variablendefinitionen an den Anfang eines Blocks mussten. Und ich denke 
im Ur-C mussten sie sogar an den Funktionsanfang.
Dein Code-Composer Compiler ist daher wahrscheinlich noch aus der 
Vor-C99 Ära.

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.