Forum: Mikrocontroller und Digitale Elektronik Tiny 13 "for" schleife


von Dimithri (Gast)


Lesenswert?

Hallo,

ich habe gerade ein kleines Problem mit for Schleife und bräuchte eure 
fachmännische Beratung.

      for(a=0;a<=REC_TIME;a++)
      {
        for(y=0;y<=5;y++)
        {

        }

      }
Mit der Schleife will ich einfach den Controller Zeit X beschäftigen. 
Nun habe ich dass Problem, dass Y nicht incrementiert sondern gleich auf 
5 bzw. 6 geht. Woran liegt das?

Danke im Vorraus.

von Peter II (Gast)


Lesenswert?

Dimithri schrieb:
> Woran liegt das?

daran das der Optimierer gute Arbeit leistet.

Warum kein delay_us verwenden?

von icke (Gast)


Lesenswert?

das wird an der eingestellten CodeOptimierung liegen.
Der Compiler merkt, dass in der Schleife nichts gemacht wird und setzt 
die Varaiablen auf die Endwerte.

von Dimithri (Gast)


Lesenswert?

ich wollte kein delay_us verwenden um mir paar code Zeilen zu sparen 
aber wenn ich die leer stellen in der Schleife nicht so stehen lassen 
kann, werde ich auf delay_us gehen.


Danke für die schnelle Antworten.

Gruß Dimi

von Peter II (Gast)


Lesenswert?

Dimithri schrieb:
> ich wollte kein delay_us verwenden um mir paar code Zeilen zu sparen

delay_us macht doch genau das gleiche was du auch machst (nur halt 
richtig, damit es nicht weg optimiert wird).

Damit wird der code nicht größer.

von Dimithri (Gast)


Lesenswert?

Habe jetzt delay_us programmiert und die for Schleife raus genommen.

Danke nochmals

von stefanus (Gast)


Lesenswert?

Du kannst den Assembler Befehl NOP in die Schleife einbauen.

von Michael (Gast)


Lesenswert?

stefanus schrieb:
> Du kannst den Assembler Befehl NOP in die Schleife einbauen.

Kann er machen. Und was soll das ändern?

von Helper (Gast)


Lesenswert?

Michael schrieb:
> Kann er machen. Und was soll das ändern?

Dass es funktionieren würde.

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.