ST Visual Develop - Variable außerhalb main()-loop deklarieren

OP #4562616
Lesenswert?

Hallo,

ich möchte gerne bei jedem 2. Durchlauf der Hauptschleife eine Funktion 
ausführen. Dafür zähle ich eine Variable hoch und überprüfe dann bei 
jeden Durchlauf ob:
1
(i%2)
Dafür muss ich die Variable außerhalb der while-Schleife deklarieren, da 
sie sonst bei jedem Durchlauf überschrieben wird, leider mag das mein 
Compiler (COSMIC STM8) anscheinend nicht :(
1
uint16_t i = 0;
2
do{
3
  if(i%2){
4
    selfTest();
5
  }
6
  i++;
7
}while(1);

Fehlermeldung:

misplaced local declaration in der Zeile in der
1
uint16_t i = 0
 steht.

Jemand eine Idee, wie ich das umgehen kann oder ist das der Preis, den 
man für einen kostenlosen Compiler zahlen muss?
Gast #4562624
Lesenswert?

Max M. schrieb:
> Jemand eine Idee, wie ich das umgehen kann oder ist das der Preis, den
> man für einen kostenlosen Compiler zahlen muss?

vermutlich ist es ein C Compiler und bei C ( vor c99) muss man Variablen 
am Anfang vom Block deklarieren.

Vermutlich hast du vor dem

uint16_t i = 0;

noch weiteren code stehen. Man könnte sie auch static machen, dann kann 
sie innerhalb der schleife bleiben.

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