ATMega steuert über I2C SAA1064 LED Treiber

OP #448686
Lesenswert?
• ▲
▼
Hallo zusammen,

ich möchte gerne 12 7-Segementanzeigen über den SAA 1064 im 
Multiplexbetrieb mittels I2C ansteuern.

Um dies umzusetzen habe ich mir eine kleine Routine geschrieben,um dies 
auszutesten.

Leider bin ich nun an einem toten Punkt angelangt.

Ich kann den Baustein ansprechen und wenn ich ins Statusregister die 
Werte für den Segmenttest lade, dann leuchten auch alle Segmente.

Wenn ich das Datenblatt richtig interprediere, dann muß ich zuerst den 
Baustein initialisieren, das mache ich so:

I2cstart
I2cwbyte Adresse_car12              'Adresse des ersten Bausteins
I2cwbyte Statusregister             'Statusregister ansprechen
I2cwbyte Modusbyte                  'Betriebsmodus &B00110111
I2cstop

Danach rufe ich eine Subroutine in einer Endlosschleif auf, die die 
Daten zum Baustein übertragen soll - mit Waitsteps.


Sub I2c_write(byval Adr As Byte , Byval A_data As Byte , Byval B_data As 
Byte , Byval C_data As Byte , Byval D_data As Byte)



I2cstart
I2cwbyte Adr                                 'Daten schreiben
I2cwbyte A_data
I2cwbyte B_data
I2cwbyte C_data
I2cwbyte D_data
I2cstop
Waitms 10

End Sub


Kann mir jemand eine Tipp geben was ich dabei falsch mache - die 
Anzeigen bleiben Dunkel, ganz egal was ich da rausschreibe.

lg.
gerhard
Gast #448705
Lesenswert?
• ▲
▼
Hallo Gerhard,
vielleicht hilft Dir diese Seite weiter: 
http://www.cc2net.de/Module/module.html
---------------------------------------
saa1064.zip V1.0 Gemeinsames Modul André Helbig 11.01.2004
  Treiber für SAA1064 4-Digit 7Segment-I²C-Bus-Baustein und CCTools 
I2C-7Seg4
  Features:
  - Ausgabe bis zu 8stelliger Zahlen in Dezimal und Hexadezimal
  - Ausgabe einzelener Ziffern
  - Ausgabe selbstdefinierter Zeichen
  - Verwendung des SAA1064 als 16Bit-Portexpander
---------------------------------------
Gruss Klaus
Gast #448712
Lesenswert?
• ▲
▼
Hallo,
bei mir funzt folgendes:
I2cstart
I2cwbyte 112       'Schreibadresse SAA1064 (7 SegmentTreiber)
I2cwbyte 0       'Adresszähler auf 0 (Control Register)
I2cwbyte &B00010111       'schreibe Control Register ()
I2cwbyte 63       '4te Ziffer
I2cwbyte 6       '3te Ziffer
I2cwbyte 91       '2te Ziffer
I2cwbyte 79       '1te Ziffer

Gruß Stefan
Gast #1989247
Lesenswert?
• ▲
▼
Hallo Zusammen,

an dieser Stelle vielen Dank für die hilfreichen Erklärungen. Damit habe 
ich mein Thema in dieser Angelegenheit ebenfalls lösen können. - Ich 
nutze einen AT-Mega 162 und baue zur Zeit eine 3-stellige 
Programmanzeige für meine MIDI-Steuerung.

Fröhliche Weihnachten und gute Zeit
Franz-Juergen

Antwort schreiben

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.

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.