Forum: Mikrocontroller und Digitale Elektronik ATMega steuert über I2C SAA1064 LED Treiber


von Gerhard H. (computerkora)


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

von KlaRa (Gast)


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

von Stefan (Gast)


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

von Gerhard H. (computerkora)


Angehängte Dateien:

Lesenswert?

Dank für euer Input,

anbei mein Testprogramm mit dem es funktioniert.

Es werden zuerst die Zahlen 0,1,2,3 angezeigt und anschließend in einer 
schleife die Hex -Zahlen durchgezählt.

lg.
gerhard

von franz-juergen (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.