mikrocontroller.net

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


Autor: kasa (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: kasa (Gast)
Datum:

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

Autor: kasa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo keiner kann helfen ?

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: kasa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jo hab ich gemacht und gefunden :) thx @ all

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.