Hallo zusammen, ist vielleicht eine dumme Frage, aber: Wie kann ich in Assembler eine Warteschleife basteln, die eine bestimmte Anzahl von nops ausführt? (Für Mega8 falls es für diese Schleife einen Unterschied macht) Danke und viele Grüsse Karl
ldi r18,250 ldi r19,4 clr r20 clr r21 loop2: clr r20 loop1: inc r20 cpse r20,r18 rjmp loop1 inc r21 cpse r21,r19 rjmp loop2 mfg Klaus
ldi r16, 250 ; 1 takt loop: nop ; 250 takte ==> jeder befehl 1 takt dec r16 ; 250 takte ==> jeder befehl 1 takt brne loop ; 499 takte ==> bei sprung 2 takte, sonst 1er ==> zusammen 1000 takte oder du lädst mit 248 oder 249 und dann kannste noch nen müll wie ret und so einbauen... sollteste aber selbst nochmal durchrechnen dave
Hallo Klaus und Dave, danke für Eure Code-Fragmente. Hatte zuerst in Codesammlungen gefragt, weil mir das logisch vorkam. Beim herumsuchen und lesen hatte ich dann mehrmals gelesen, dass Fragen dort wohl nicht hinein gehören. Also hatte ich dann noch mal im Microcontroler gefragt und sehr gute Antworten bekommen und gleich erflogreich ausprobiert. Aber Eure Lösungen zeigen mal wieder, dass viele Wege nach Rom führen:-) Viele Grüsse Karl
In der Codesammlung ist auch noch ein Beispiel-Makro dazu. Es geht zwar 'nur' bis 770 Takte, kannst es aber auch 2-Mal hintereinander aufrufen ;-) Zu finden hier: http://www.mikrocontroller.net/forum/read-4-125536.html Volkmar
Hallo zusammen, ich programmiere ein kartenspiel dafür benötige ich ein zufallsgeneator. wie binde ich einen zufallsgenerator mit ein? gruß Krishan
Hi, ich hatte mal einen Doppelwürfel mit asm programmiert. Für die Würfelzahlen hatte ich einen Timer laufen, der im schnellstmöglichen Takt von 0..5 gezählt hat (bzw. 1..6). Wenn einer eine Taste gedrückt hat, hab ich die aktivierende Flanke der Taste genutzt um Würfel 1 mit dem derzeitigen Counterwert zu laden und die deaktivierende Flanke (Taste loslassen) holt den Counterwert für für den 2. Würfelwert. Die Ausgabe über LEDs erfolgte erst, nach dem die Taste wieder losgelassen wurde. Somit lag der Zufallsfaktor bei Nutzer, bzw. wann man die Taste drückt und loslässt. Hat prima funktioniert und keiner trifft mit gezieltem Drücken einen bestimmten Counterwert, wenn der Counter mit paar MHz rennt. Auch wenn es viele versucht haben :-) Gruß RoK
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.