Forum: Mikrocontroller und Digitale Elektronik AVR-Studio5 ich flip gleich aus!


von Klaus (Gast)


Angehängte Dateien:

Lesenswert?

Hi!

im Anhang kleines Progrämmchen.

Kann mir jemand sagen warum zum Teufel die While Schleife nicht 
durchlaufen wird.
Und warum sind Breakpoints mit Ausrufezeichen?

So was ist echt nervig und ich weiß jetzt echt nicht woran es liegt.
von ADWandlerfrage (Gast)


Lesenswert?

Müsstest Du nicht in die While-Schleife einen Vergleichsoperator 
reinmachen, z.B.

while (z != 1) {   ...   }

weil, was soll denn eins sein? Es muss doch ein Ergebnis mit True/False 
zurückgeliefert werden, auf dem basierend die while-Schleife 
funktioniert.
von Roland P. (pram)


Lesenswert?

Code-Optimierung. Die While Schleife (z++) ist aus Sicht des Compilers 
unnütz und wird weggelassen. Hinter den ! verbirgt sich 
höchstwarscheinlich eine Warnung die auf diesen Sachverhalt hinweist.

Gruß
Roland
von Ingo L. (Gast)


Lesenswert?

Hast du dir schonmal den Disassembler angeguckt?
Merkwürdig, gibt`s Warnungen oder Fehlermeldungen beim Kompilieren?


Grüße,
Ingo
von Klaus (Gast)


Lesenswert?

Ich denke das hier wird wohl irgendwas nicht stimmen.

Target "PostBuildEvent" skipped, due to false condition; 
('$(PostBuildEvent)' != '') was evaluated as ('' != '').
Target "Build" in file "C:\Program Files\Atmel\AVR Studio 
5.0\Vs\Avr.common.targets" from
von Ingo L. (Gast)


Lesenswert?

Klaus schrieb:
> Ich denke das hier wird wohl irgendwas nicht stimmen.
>
> Target "PostBuildEvent" skipped, due to false condition;
> ('$(PostBuildEvent)' != '') was evaluated as ('' != '').
> Target "Build" in file "C:\Program Files\Atmel\AVR Studio
> 5.0\Vs\Avr.common.targets" from

Nee, das ist ok.
http://avrstudio5.wordpress.com/


Grüße,
Ingo
von Klaus (Gast)


Lesenswert?

Hi!

Es lag daran das ich -Os gesetzt habe! Ohh Mann!

Danke Roland für den hinweis.

Hat sich hiermit erledigt
von Ingo L. (Gast)


Lesenswert?

Das solltest du auch so lassen. Wenn du dann Code mit "Sinn" schreibst, 
funktioniert das das auch ;-)



Ingo
von Johannes G. (gutenberg)


Lesenswert?

Ich hab zwar AVR Studio 5 noch nicht benutzt, aber die Ausrufezeichen 
sind sicher Compiler Warnungen. Halte den Mauszeiger über die 
Ausrufezeichen dann solltest du ein Popup sehen mit einer Erklärung.

Ausserdem: was zum Geier soll denn das Programm? Und wie willst du 
erkennen dass die Schleife nicht durchlaufen wird? Machst du das im 
Simulator?
von Klaus (Gast)


Lesenswert?

@Johannes G

Es ist nur ein test, weil ich mich gewundert habe warum der die 
While-Schleife nicht durchläuft.
Das eigentliche Gerüst sieht ganz anders aus aber dort wird die Schleife 
auch nicht durchlaufen ich habe es nur der einfachhalber so gepostet.

Die z++ sollte ja trotzdem erhöht werden ohne jetzt einen wirklichen 
sinn zu haben.

JA! Es wird Simuliert und Ja! Auch auf dem ATiny 13 debugt.
von Klaus (Gast)


Lesenswert?

ADWandlerfrage schrieb:
> Müsstest Du nicht in die While-Schleife einen Vergleichsoperator
> reinmachen, z.B.
>
> while (z != 1) {   ...   }
>
> weil, was soll denn eins sein? Es muss doch ein Ergebnis mit True/False
> zurückgeliefert werden, auf dem basierend die while-Schleife
> funktioniert.

Wenn man keine AHnung hat, einfach mal... ein C-Buch lesen! Und bitte 
erst danach wieder hier antworten ;-)
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.