Forum: Mikrocontroller und Digitale Elektronik Verstehen Timer nicht (Assembler)


von kasa (Gast)


Lesenswert?

hallo,

bin völlig neu in der sprache mache gerade eine woche praktikum darin
und mir is noch so einiges unklar ich habe nun, bzw sollte ein programm
schreiben das eine LED auf und ableuchten lässt/soll, nunja das habe
ich, jedoch würde ich gern den gesamten quellcode verstehen, denn
dieses timer zeuchs is echt für mich unlogisch wieso man unter dem
einem unter-programm nochmal zwei aufruft damit es blinkt(habe es in
vielen anderen variationen probiert es funkt. nur die eine) und was r6
u r7 bedeutet und was die zahl 128 machen soll und wieso ret?? wäre
total nett wenn ihr mir das mal erklären könntet.

hier mal der code

TIMER:  MOV R7,#128'warum mov?
T:    MOV R6,#128'wieso neues unterprogramm
ST:  DJNZ R6,ST'warum funktioniert das runter zählen nich mit dem $
  DJNZ R7,T; wiedo kein neues aufrufen und dafür das T einsetzen
   RET   ;warum returnen??

PS: kenn jm. gute einsteiger workshops zur 7 Segment anzeige für das
MCLS - Modular ?
danke im vorraus :)

von crazy horse (Gast)


Lesenswert?

das ist keine Timerprogrammierung, sondern eine Zeitschleife. Macht
weiter nichts, als den Proc. eine Weile zu beschäftigen.

TIMER:  MOV R7,#128'warum mov?
T:    MOV R6,#128'wieso neues unterprogramm
ST:  DJNZ R6,ST'warum funktioniert das runter zählen nich mit dem $
  DJNZ R7,T; wiedo kein neues aufrufen und dafür das T einsetzen
   RET   ;warum returnen??

In Wirklichkeit sind es 2 Schleifen, eine innere (R6) und eine äussere
(R7). Zum Anfang wird der Zähler für die äussere Schleife mit einem
Startwert geladen. Dann kommt schon die innere Schleife, laden mit
Startwert (mov r6, #128) und anschliessendes Herunterzählen. Die innere
Schleife wird 128 wiederholt, dann enthält r7 0 und der Sprung von djnz
r7 wird nicht mehr ausgeführt, d.h. hier ist das Verzögerungsprogramm
zu Ende. Ret deshalb, weil das ganze mit call Timer aufgerufen wird und
mit ret jetzt dahin zurückkehrt.

von kasa (Gast)


Lesenswert?

alles klar danke soweit kannst du mir noch ein gutest tutorial für die 7
- segment anzeige vorschlagen??

von kasa (Gast)


Lesenswert?

hallo keiner kann helfen ?

von Tobi (Gast)


Lesenswert?

ohne dir jetzt zu nahe treten zu wollen aber ein gutes tutorial für
assembler programmierung würde ich dir eher empfehlen zu suchen!

von kasa (Gast)


Lesenswert?

jo hab ich gemacht und gefunden :) thx @ all

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.