PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeitschleife



Exodus
07.06.2006, 07:38
kann mir wer sagen wie ich eine Zeitschleife am besten mache mit dem Timer? Also ich möchte keine Zeitschleife machen, die so aussieht:


loop:
ldi R16, 255
inc R17
cpse R16, R17
rjmp loop
.
.
.
.
.


Da hängt man ja ewig dran bis man 1ne sekunde hat!

Bitte helfen

MFG
Michael

Florian
07.06.2006, 14:11
Hallo Michael!
Du machst einfach einen Timerstart, wie normal, nur halt, dass Du den Interrupt abschaltest und das Flag manuell abfragst, also auch eine Schleife, nur halt mit der Bedingung, dass das Flag gesetzt ist.

Viele Grüße
Florian

SprinterSB
07.06.2006, 15:36
...und nicht vergessen, danach das Flag wieder zu löschen. Sonst geht das nur ein einziges Mal.

uwegw
07.06.2006, 15:50
Da hängt man ja ewig dran bis man 1ne sekunde hat!

Bezieht sich das auf das von-Hand-ausrechnen der genauen Werte für die Schleifen? Das kann man auch automatisch machen lassen:
http://www.home.unix-ag.org/tjabo/avr/AVRdelayloop.html

Florian
07.06.2006, 17:32
Hallo Michael!

Da hängt man ja ewig dran bis man 1ne sekunde hat!Wenn man das "man" auf den AVR bezieht, dann hat der AVR natürlich keine Abwechslung, immer das selbe ... vielleicht verfällt er ja dann in den SLEEP? ... aber viel mehr Abwechslung bietet das mit nem Timer auch nicht, eher weniger, es sei denn man benutzt den Interrupt, aber dann langweilt sich halt nur noch der Counter vom Timer! *lol*
-> Scherz bei Seite:
Wie Uwe bereits sagte gibt es für die Berechnung dieser Delays ein Programm, sehr praktisch!

Viele Grüße
Florian