Lauflicht mit Assembler

Gast #1550425
Lesenswert?

Hallo ich möchte ein Lauflicht in Assembler Programieren, für den 
ATMega8.
Ich verstehe nicht wieso mein Programm nicht funktioniert.Wohlbemerkt 
bin ich noch anfänger.^^
ich hoffe mir kann jemand helfen.
Die LEDs befinden sich an PortB.
Bitmuster:
0000
0*00*0              Stern entspricht einer leuchtenden LED
00**00
0****0
******
0****0
00**00
000000






;**************************************************************

.include"m8def.inc"
.org 0x0000

LDI R22,0x04              ;)
OUT SPH,R22        ;)Stack festlegen
LDI R22,0x00              ;)
OUT SPH,R22        ;)

NEU:
RCall WGLOOP4      ;Sprungziel mit Stack

LDI R16,0B00100001    ;Lade Bitmuster in register
OUT PORTB,R16                   ;Setze Ausgänge Nach Bitmuster in R16

RCall WGLOOP4      ;Sprungziel mit Stack

LDI R16,0B00010010
OUT PORTB,R16

RCall WGLOOP4      ;Sprungziel mit Stack

LDI R16,0B00001100
OUT PORTB,R16

RCall WGLOOP4      ;Sprungziel mit Stack

LDI R16,0B00011110
OUT PORTB,R16

RCall WGLOOP4      ;Sprungziel mit Stack

LDI R16,0B00111111
OUT PORTB,R16

RCall WGLOOP4      ;Sprungziel mit Stack

LDI R16,0B00011110
OUT PORTB,R16

RCall WGLOOP4      ;Sprungziel mit Stack

LDI R16,0B00001100
OUT PORTB,R16


RCall WGLOOP4      ;Sprungziel mit Stack

LDI R16,0B00000000
OUT PORTB,R16

RJMP NEU

WGLOOP4:


                 ldi  R22, 0x12    ;)
      WGLOOP0:  ldi  R18, 0xA1    ;)
      WGLOOP1:  ldi  R19, 0xD3    ;)
      WGLOOP2:  dec  R19        ;)
                brne WGLOOP2      ;)
                dec  R18        ;)
                brne WGLOOP1      ;)
                dec  R22        ;)
                brne WGLOOP0      ;) ;Zeitkonstante 1 Sekunde
      ; ----------------------------- ;)
      ; delaying 3 cycles:      ;)
                ldi  R22, 0x01    ;)
      WGLOOP3:  dec  R22        ;)
                brne WGLOOP3      ;)
      ; ----------------------------- ;)
      ; delaying 1 cycle:        ;)
                nop          ;)
      ; =============================
RET

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren