Forum: Mikrocontroller und Digitale Elektronik Schleife


von Frank (Gast)


Lesenswert?

Hallo

Ich möchte in ASM eine Schleife mehrfach durchlaufen. In der schleife
wird ein byte mehrfach hoch gezählt 0x00- 0xFF und wieder von vorn.
Nur diese Schleife soll nun nach ca 30 mal verlassen werden. Wie kann
man eine Zweite Zählschleife nicht in ein Byte sondern in z.b. in ein
Word zählen lassen, damit sie die Schleife nach ca. 30 Durchläufen
verlässt. Habe micht hoffentlich verständlich ausgedrückt. Bin noch
Newbie!

von Reinhard Biegel (Gast)


Lesenswert?

Hallo!

Wär hilfreich, wenn du sagen würdest, um welche Architektur es geht.
Wenns um 8051er geht, dann schau dir mal die djnz istruction an.

mfg
Reinhard

von Rufus T. Firefly (Gast)


Lesenswert?

Welcher Prozessor? Dieser Hinweis ist wichtig, da jede
Prozessorarchitektur mit ihrem eigenen zu anderen völlig inkompatiblen
Asseblerdialekt daherkommt.

Wenn ich Dir beispielsweise Deine Zählschleifen in 6809-Assembler
angeben würde, würde Dich das höchstwahrscheinlich nicht wirklich
weiterbringen ...

von Frank (Gast)


Lesenswert?

sorry
geht um einen Atmega8!

von Frank (Gast)


Angehängte Dateien:

Lesenswert?

hier auch noch die Schleife die so endlos läuft. Das ganze ist eine
Interupt der eine LED dimmt. Ich habe das ganze in AVR Studio
simuliert. Er fängt immer wieder die Register an zu Inc. Also Endlos.
Er soll nach X Durchläufen zurück zu main springen.

von Wolle (Gast)


Lesenswert?

wt_30x255:            ; 30malbis255zählen
  ldi  tmp1, 30
LP0:
  ldi  tmp2, 255
LP1:
  dec  tmp2
  brne  LP1
  dec  tmp1
  brne  LP0
  ret      ; wieder zurück

von Reinhard Biegel (Gast)


Lesenswert?

@Frank:

Ich hoffe, dir ist bewusst, dass du im source ein oush ohne pop hast
und kein ret (und was das für den stack pointer bedeutet).

Reinhard

von Frank (Gast)


Lesenswert?

danke für die Antwort! Nur diese Schleife müsste ja auf 30 mal abgefragt
werden sonst springt er ja nicht aus meiner eigentlichen Schleidfe raus
oder???

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.