wie funktioniert Timer/Schleife für Lauflicht?
Hallo hab mal ein kleines Programm geschrieben. Soll ein Luaflicht werden. Ich weiß, daß das auch einfacher geht wie jedes Bit einzeln zu setzten. Darum geht es mir bis jetzt aber auch noch nicht. Ich hab das Problem, daß wenn ich die Schleife die jetzt im unterprogramm warten steht zwischen jede en einzelnen Block setzt Funktionierts. Also hab ich rigendwie ein problem mit dem Aufruf des Unterprogramms. Wollte das ganze (Zeitschleife) eh mit einem Timer realisieren. Aber das habe ich bis jetzt noch gar nicht verstanden. Setzt einen 12 Mhz Quarz ein. Dadurch brauche ich eine lange Schleife, um das Lauflicht überhaupt sehen zu können. Könnt ihr mir da vielleicht weiter helfen?
Vielen Dank schon mal
.include "m8def.inc"
ldi r16, 0xFF
out DDRD, r16
rcall warten
ldi r16, 0b11111111
out PORTD, r16
rcall warten
ldi r16, 0b00000010
out PORTD, r16
rcall warten
ldi r16, 0b00000100
out PORTD, r16
rcall warten
ldi r16, 0b00001000
out PORTD, r16
rcall warten
ldi r16, 0b00010000
out PORTD, r16
rcall warten
ldi r16, 0b00100000
out PORTD, r16
rcall warten
ldi r16, 0b01000000
out PORTD, r16
rcall warten
ldi r16, 0b10000000
out PORTD, r16
rcall warten
ldi r16, 0b00000000
out PORTD, r16
warten:
ldi r16, 1255
ldi r17, 255
loop1:
dec r17
brne loop1
dec r16
brne loop1
ret
Ach ja, was ist der Unterschied zwischen rcall und call? Könnte ich das Unterprogramm auch mir call aufrufen?
Re: wie funktioniert Timer/Schleife für Lauflicht?
Zitat:
Zitat von Eisen3Chlorid
warten:
ldi r16, 1255
ldi r17, 255
loop1:
dec r17
brne loop1
dec r16
brne loop1
ret
Hi Eisen3Chlorid! ;o)
Beim obersten "ldi"-Befehl willst Du 1255 in r16 schreiben, das geht aber nicht!
Ich denke das war ein Flüchtigkeitsfehler, aber ich wollts nur kurz sagen! :o)
Re: wie funktioniert Timer/Schleife für Lauflicht?
[glow=red:3aad367199][shadow=red:3aad367199]EUER SYSTEM GEHÖRT MIR!!!!!!!
Ihr habt nicht die geringste Chance
[/shadow:3aad367199][/glow:3aad367199]