mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LED Matriy, Newbee braucht hilfe


Autor: Sören T. (stimmy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
das ist der Treiber für eine kleine Martix die ich letztens gebastelt 
habe.
Der erste Treiber geht, ist aber nicht sehr genial und viel zu lang. 
(siehe Anhang)


So jetzt wollte ich ihn zusammenfassen, was aber nicht geht.
Da kommt vom AVR-Studio eine Fehlermeldung im Simulator, das kein 
Stackpointer gesetzt sei.

Der Treiber muss das tun:

1. PD6 auf High, damit der 4017B resettet wird.

2. Byte aus dem Speicher holen

3. An PortB 1-7 anlegen

4. PB0 auf High und wieder auf Low, damit der 4017B einen weiter geht.


Es handelt sich um eine 7*10Led Matrix, welche die Spalten über 
Transistoren und einen 4017B durch schaltet.


Evt. kann sich das ja mal einer angucken.
Ich entschuldige mich im Voraus für dumme fragen, da das abgesehen von 
einem Lauflicht mein erstes richtiges Projekt ist.

MfG



.include "tn2313def.inc"

Ports:
    ldi     r16, 0xff
    out     ddrb, r16
    
    ldi     r16, 0x40
    out     ddrd, r16

Reset:
    out     portd, r16
    rcall   wait
    clr     r16
    out     portd, r16
    rcall   wait

Load:
    ldi     ZL, LOW(bild*2)
    ldi     ZH, HIGH(bild*2)

Outy:
    adiw    ZL, 1  
    lpm
    out     PORTB, R0     
    rcall   wait
    inc     r0
    out     portb, r0
    rcall   wait
    
    ldi     r16, 0x0a
    cp      zl, r16
    breq    new

    rjmp    outy

new:
    clr     zl
    rjmp    outy

      
wait:
    ldi     r16, 0xff
loop:
    nop
    dec     r16 
    brne    loop
    ret

bild:
.db 0xfe,0xfe,0x00,0xfe,0x00,0xfe,0x00,0xfe

Autor: Sören T. (stimmy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal ein Bild.

Autor: Martin G. (zombo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
moinsen.
hast du überhaupt einen stack eingestellt? steht im tut!
lg

Autor: Sören T. (stimmy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss ich den vor jedem rcall einen Stack machen?
      ldi     r16, RAMEND
      out     sp, r16
Das steht im Tut. aber da sagt AVR-Stu. error: Undefined symbol: sp

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.