Hallo, wie programmiere ich in Assembler eine Warteschleife von sagen wir mal 1000 Takten für den Mega8? Vielen Dank und Grüsse Karl
mit einem timer / counter oder du schreibst 1000 mal nop nop nop nop nop nop nop nop nop ....nop Gruss Jens
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
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. :-))
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ß
Ich vermute mal das könnte weiterhelfen http://www.elektronik-projekt.de/include.php?path=content/download.php&contentid=183
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.