mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Warteschleife von 1000 Takten in Assembler für Mega8


Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie programmiere ich in Assembler eine Warteschleife von sagen wir mal
1000 Takten für den Mega8?

Vielen Dank und Grüsse
Karl

Autor: Jens123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit einem timer / counter
oder du schreibst 1000 mal nop
nop nop nop nop nop nop nop nop ....nop


Gruss Jens

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jens,

mit Nops habe ich es schon probiert. Das macht den Code aber zu gross.
Timer sind mir noch zu kompliziert.

Vorläufig hätte ich gerne Schleifen von Nops, nur bin ich
Assembler-Neuling und kenne erst ganz wenige Befehle.

So etwas wie
i=0
For i = 1 bis 1000
  i = i + 1
  nop
loop

wäre gut.

Viele Grüsse
Karl

Autor: chrissy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.elektronik-projekt.de/include.php?path=...

den Link hab ich grad in Google rausgesucht. Wahrscheinlich genau das,
was du suchst. :-))

Autor: chrissy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur verschachtelten Schleife: da musst du dir genau überlegen, wie lange
eine Schleife (incl. Zähler dekrementieren, vergleichen, springen,
optionale nops) läuft. Wenn ein 8bit Zähler nicht ausreicht, musst du
eben zwei verschachteln und die äußere dekrementieren, wenn die innere
abgelaufen ist. (die natürlich wieder initialisieren)

Das erfordert genaue Überlegung was wie lange gemacht wird, um ganz
exakt auszurechnen wie lange die dann läuft.

viel Glück und Spaß

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich vermute mal das könnte weiterhelfen
http://www.elektronik-projekt.de/include.php?path=...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du suchst wohl nicht gerne ?

http://www.mikrocontroller.net/forum/read-4-15758.html#new

Einfach das Macro mit einfügen und dann

mdelay  1000

hinschreiben.


Peter

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

also du glaubst nicht, wie sehr ich gesucht habe. Kein Witz!!
Aber deine genialen Makros habe ich nicht gefunden. Die Idee nach
'Delay' zu suchen, kam mir einfach nicht :(

Läuft das Makro eigentlich auf allen AVR-Microcontrollern?

Aber nun habe ich die Makros eingebaut und mein ganz besonders
Lauflicht klappt.

Wenn ich auch nicht so ganz verstanden habe, wie das Makro
funktioniert.  Komme wohl nicht so ganz um ein gutes AVR-Assembler-Buch
herum. (Langfristig gesehen:-)

Danke nochmal
Karl

Autor: Jens123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bei kleinen bitmanipulationen etc reicht assambler ok
nur wenn du dir ueberlegst grosse programme zu schreiben empfehle ich
dir C =)

und ja, das makro sollte auf alles AVRs laufen..

Das makro erstellt dir nur einen programmcode, den du als delay 1000
siehst

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.