Archiv verlassen und diese Seite im Standarddesign anzeigen : Verzögerung
Hallo,
Wie bringe ich meinen AVR dazu, eine bestimmte Zeitspanne zu warten?
(So wie der Pause-Befehl in C-Control Basic)
Ich programmiere in Assembler für einen ATMega8.
Bitte helft mir - wäre auch für eine Code-Beispiel sehr Dankbar!
AlexAtRobo
21.06.2004, 12:18
wenn du nichts anders tun willst einfach eine Schleife.
ldi r16, 10
ldi r17, 255
loop1:
dec r17
brne loop1
dec r16
brne loop1
macht 10x255 pause, aufpassen, dec frisst einen Takt, brne 1 oder 2 Takte je nachdem ob er springt oder nicht.
Wenn du nur kurz warten willst, reicht auch mal ein oder mehrere nops
Wenn du inzwischen was anderes tun willst, mußt du einen Timer setzen und dann in der interruptroutine darauf reagieren.
lg
Alex
Danke Alex!
Ganz versteh ich den Code nicht.Was genau macht der brne-Befehl?
DerInder
21.06.2004, 20:51
brne?
branch if not equal = verzweige falls nicht gleich (rtfm)
google mal nach avrdelay ein nettes progrämmchen mit dem man sich beliebig lange verzögerungsschleifen produzieren kann
Danke!
Das Prog is geil!
Werde es gleich mal testen!
[/quote]
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.