www.mikrocontroller.net

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


Autor: Crash (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
for(int i=0;i<10;i++)
{...}
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:
int i =0;
for(i=0;i<10;i++)
{...}

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


Auch bei der Whileschleife
while(1)
{...}
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

Autor: Hannes H. (mui)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Crash schrieb:

> Gut, ich habe mich aber kompromissbereit gezeigt und die Schleife so
> geschrieben:
>
int i =0;
> for(i=0;i<10;i++)
> {...}
>
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
>
while(1)
> {...}
> 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

Autor: Crash (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hannes!

Danke für Deine Antwort.
Ich hatte in der ersten Zeile der main() das hier stehen:
// Stop watchdog timer
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
for(int i=0;i<10;i++)
Schleifen durchgehen lassen ...


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

Gruß
Crash

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Crash schrieb:

> Aber ich habe noch keinen Compiler benutzt der das so genau nimmt ...
> WinAVR, Bloodshed und andere haben mir immer die
>
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.