www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Lauflicht mit Assembler


Autor: hero (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gastofatz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>LDI R22,0x04              ;)
>OUT SPH,R22        ;)Stack festlegen
>LDI R22,0x00              ;)
>OUT SPH,R22        ;)

Du lädst 2x SPH, einer davon muss SPL sein. Und nehm RAMEND

Autor: Mike Dupo (hero2992)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo danke das wars schon... war ein dummer fehler...

Also vielmals danke.. ist mir ne halbe stunde lang nicht aufgefallen... 
und ihr findet es in 2 Minuten... hehe

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das war's schon.  Wirklich?  Wo wird Port B auf Output gestellt?  Bisher 
werden nur die Pullups aktiviert.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.