Lauflicht mit Assembler

Gast #1550425
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
Gast #1550436
>LDI R22,0x04              ;)
>OUT SPH,R22        ;)Stack festlegen
>LDI R22,0x00              ;)
>OUT SPH,R22        ;)

Da gehts schon los: Zweimal SPH?

Den Rest hab ich mir nicht angeguckt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.