www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik max7219


Autor: michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hello avrfreaker..

Ich programmiere gerade die ausgabe verfahren der max7219 in assembler
(angeschlossen mit der tiny26)...
aber irgendwie laüft das nicht so rund bei mir..
also so soll die vorgehenweise sein:

*  Steuerleitung LOAD löschen
    * Die Adresse (TEMP1) an den MAX7219 senden
          o Schleifenzähler (TEMP3) mit dem Wert 8 laden. (die
folgende
Schleife wird demnach achtmal durchlaufen
          o Schleifenbeginn
                + Alle Bits im Übergaberegister (hier: TEMP1) auf die
nächst höhere Stelle schieben
                + Datenleitung DIN = Carry (= Flag im Statusregister):
Für diese Anweisung ist jedoch kein Assemblerbefehl vorhanden! Es ist
daher folgender Umweg notwendig: Zuerst prüfen, ob das Carry-Flag
gesetzt ist. Ist es gesetzt, die Datenleitung (DIN) ebenfalls setzen.
Andernfalls die Datenleitung (DIN) löschen. Ist das soeben eingelesene
Bit (Bit 0 vom Register TEMP3) gesetzt, Bit 0 des Übergaberegister
TEMP1 setzen
                + Takt erzeugen: Dazu zunächst die Taktleitung (CLK)
setzen, und wieder zurücksetzen
          o Schleifenende
    * Data (TEMP2) auf die gleiche Weise wie die Adresse (TEMP1) an
den
MAX7219 senden
    * Steuerleitung LOAD wieder setzen, und eine positive Taktflanke
erzeugen


so habe ich gemacht ohne erfolgt...was mache ich falsch?

So habe ich es mir vorgestellt
PB1------->DIN
PB2------->CLK
PB5------->LOAD
.equ DIN=PORTB1
.equ LOAD=PORTB5
.equ CLK=PORTB2

Ausgabe:   cbi PORTB,LOAD
           ldi temp3,8
      IN:  lsl temp1
           brcs MM
           cbi PORTB,DIN
           rjmp GO
      MM:  sbi PORTB,DIN
      GO:  sbi PORTB,CLK
           cbi PORTB,CLK
           dec temp3
           brne IN

           ldi temp3,8
     IN2:  lsl temp1
           brcs MN
           cbi PORTB,DIN
           rjmp GO
      MN:  sbi PORTB,DIN
     GOO:  sbi PORTB,CLK
           cbi PORTB,CLK
           dec temp3
           brne IN2

           sbi PORTB,LOAD

Autor: michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sieht niemand ein fehler irgendwo von mir?
ich versuche das so zu machen weil ich versuch habe das mit USI
dertiny26 zu machen ohne erfolg, wenn jemand mit der USI programiert
hat , wurde ich gern ein blick drauf machen, oder hat jemand überhaupt
der max7219 im laufen in assembler gebracht?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In Deinem Text steht was von TEMP2, das taucht im Assembler aber
nirgends auf.


Peter

Autor: michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke oeter inszwichen habe ich das gesehen, jetzt funk es  :)
hat jemand das schon mit USI von tiny26 gemacht?

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.