Du meinst den SAA1064 ? Wie sieht die Initialisierung aus ?
- - - Aktualisiert - - -
Ändere mal dein Control-Byte auf 0b01000111
moin
Ich habe da mal eine Frage. Wir sollen im Rahmen eines Schulprojektes zwei Platinen mittels I2C verbinden. Das eine ist ein sogenanntes KISSBoard mit einem Atmel AT89S52 und das andere ist eine sogenannte I2C-Experimentier Platine auf der 4 7-Segment anzeigen verbaut sind die mittels SAA1064 angesteuert werden sollen. Mein Problem ist das ich immer entweder Anzeige 1 und 3 oder 2 und 4 oder alle 4 ans Leuchten bekomme. Diese Steuer ich über das control byte an. Ich bekomme es aber nicht hin das ich die einzelnen Segmente jeweils eine Zahl oder Zeichen anzeigen lassen kann.
Mein Programm Codes sieht derzeit so aus
das was die einzelnen Segmente anzeigen sollen ist hier gerade nicht logisch da ich das erst einmal zum Testen so eingestellt habe um zu schauen ob überhaupt was passier.Code:while(1) { if(TASTER==0) { I2C_clock(); //clock I2C_start(); //start I2C_write(0b01110000); //address Byte I2C_ack(); I2C_write(0b00000000); //instruction Byte I2C_ack(); I2C_write(0b01110111); // control Byte I2C_ack(); I2C_write(0b10101010); // data digit 1 I2C_ack(); I2C_write(0b01010101); // data digit 2 I2C_ack(); I2C_write(0b01010101); // data digit 3 I2C_ack(); I2C_write(0b10101010); // data digit 4 I2C_ack(); I2C_stop(); //stop }
Ich würde mich darüber freuen eine schnelle und Anfänger freundliche Antwort zu bekommen
gruß
Geändert von Dennis Prinz (29.12.2014 um 18:42 Uhr)
Du meinst den SAA1064 ? Wie sieht die Initialisierung aus ?
- - - Aktualisiert - - -
Ändere mal dein Control-Byte auf 0b01000111
Ich programmiere mit AVRCo
hey,
ja da ist mir wohl ein Zahlendreher unterlaufen. In welcher art und weise muss ich den was initialisieren weil im Datenblatt vom SAA steht nichts davon drin das der Initialisiert werden muss.
gruß
Das Control-Byte ist prinzipiell die Initialisierung. Später muss das nicht mehr gesendet werden, nur noch die Displaydaten.
Gehts jetzt ?
Ich programmiere mit AVRCo
also mit deinem Editierten Control Byte bleiben alle Anzeigen dunkel
Gibt es von dieser Platine einen Schaltplan ?
Ich geh davon aus, daß der Syntax und die Verwendung der I2C-Lib so richtig ist. Von Basic (?) hab ich keine Ahnung.
Bin SAA1064 schickst du einmal auf die richtige Adresse, SubAdress 0, ControlByte.
Versuchs mit 0b01110001 oder 0b01110111. Ok letzteres hattest du ja schon
Später reicht es auf Adresse, SubAdress 1 die 4 Bytes zu senden, die angezeigt werden sollen.
Geändert von Crazy Harry (29.12.2014 um 19:50 Uhr)
Ich programmiere mit AVRCo
Ok Standard SAA-Beschaltung.
Wenn du als Controlbyte 0b01001111 nimmst, sollten alle Segmente mit 12 mA leuchten. Das ist der Segmenttest.
Ich programmiere mit AVRCo
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Weg zu einigen meiner Konstruktionen
Eigentlich sollten an Stelle 1 und 4 die Segmente b, d, f und Dezimalpunkt leuchten und an Stelle 2 und 3 die Segmente a, c, e und g.
Ich programmiere mit AVRCo
Lesezeichen