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


von Karl (Gast)


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

von Jens123 (Gast)


Lesenswert?

mit einem timer / counter
oder du schreibst 1000 mal nop
nop nop nop nop nop nop nop nop ....nop


Gruss Jens

von Karl (Gast)


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

von chrissy (Gast)


Lesenswert?

http://www.elektronik-projekt.de/include.php?path=content/articles.php&contentid=75&PHPKITSID=ae47b49717e954b4c35feeb077787095

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

von chrissy (Gast)


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ß

von Markus (Gast)


Lesenswert?


von Peter D. (peda)


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

von Karl (Gast)


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

von Jens123 (Gast)


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

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.