Hmm. Bin auf Dienstreise und am Mittwoch wieder zu Haus. Dann 'Spiel' ich noch ein wenig rum
Werbung
Hmm. Bin auf Dienstreise und am Mittwoch wieder zu Haus. Dann 'Spiel' ich noch ein wenig rum
Ok, das mach Sinn.
Ich versteh aber die Schreibweise noch nicht.
Ist denn 0x20 das Gleiche wie 100000?
Und bei dem Code passiert auf dem Display gar nichts
I2cstart
I2cwbyte &B01110000
I2cwbyte &B00000001
I2cwbyte &B00000011
I2cstop
I2cstart
I2cwbyte &B01110000
I2cwbyte &B00010000
I2cwbyte Einer
I2cwbyte Zehner
I2cstop
Geändert von therealosram (19.11.2014 um 21:00 Uhr)
Hallo,
Ich hab den max 6958 mal mit nem Raspberry Pi getestet. Bei mir funktioniert nur der decode mode noch nicht.
Schreibt ihr auch in das Configuration(0x04) Register 0x01? (Nach dem Startup ist der max6958 noch im Shutdown mode)
Dann einfach für die entsprechende Anzeige(0x20 - 0x23) die Segmente wie im Datenblatt auf Seite 10 Tab. 5 einschalten.
MfG
Christian
Geändert von christianb (19.11.2014 um 23:36 Uhr)
So ist es.Ich versteh aber die Schreibweise noch nicht.
Ist denn 0x20 das Gleiche wie 100000?
Die Zahl 20 ist im Hexadezimalsystem das gleiche wie die Zahl 00100000 im Binärsystem - beides entspricht 32 im Dezimalsystem. Damit man erkennt, dass eine Zahl im Hexadezimalsystem ist, gibt es mehrere Vorsätze. Gebräuchlich (und im datenblatt des MAX verwendet) ist 0x...
Bascom macht es etwas anders: Zahlen ohne irgendwelche Vorsätze werden als Dezimalzahlen interpretiert (denn damit sind wir einfach gewohnt umzugehen).
Der Vorsatz &b signalisiert Bascom, dass eine Zahl im Binärformat kommt (also nur 0 und 1), und &h kündigt eine Hexadezimal-Zahl an (also 0-9 und A-F).
In Bascom würde man also sagen 32 = &h20 = &b00100000.
Mit der Rechner-App unter Windows und OS X kann man übrigens Zahlen ganz einfach zwischen diesen drei Systemen hin- und her konvertieren!
Im Übrigen ist der Hinweis von Christianb sehr interessant, dass das Configuration Register nach dem Einschalten im Shutdown-Modus ist. Ich muss gestehen, mich zu diesem Register noch nicht belesen zu haben. Das könnte ich heute aber schaffen, denn ein "falscher" Wert in diesem Register scheint einem ja auch einen ganz schönen Strich durch die Rechnung machen zu können![]()
Geändert von Sauerbruch (20.11.2014 um 05:46 Uhr)
So - jetzt habe ich mich auch über das Configuration Register belesen:
In diesem Byte kann man lediglich die Bits 5 und 0 setzen. Bit 5 = 1 löscht die Inhalte aller Digit-Register, das muss also 0 sein. Bit 0 muss dagegen auf 1 gesetzt werden, um vom Shutdown-Modus (= alles dunkel) in den Normal Mode zu wechseln.
Kurz und gut: Das Configuration Register (Adresse 0x04) sollte mit &b00000001 beschrieben werden.
Davor kommt aber noch das Register an Adresse 0x03, das Scan Limit Register. Ich verstehe zwar nicht ganz dessen Sinn, laut Datenblatt bedeutet &b00000011 in diesem Register "Display digits 0,1,2,3 and segments 0,1,2,3,4,5,6,7" - und das klingt gut.
Zusammengefasst müsste es so vielleicht wirklich gehen:
I2cstart
I2cwbyte &b01110000 (MAX adressieren)
I2cwbyte &b00000001 (Erste Registeradresse ist 0x01)
I2cwbyte &b00000011 (dieses Byte kommt in´s Decode Mode Register an 0x01)
I2cwbyte &b00100000 (dieses Byte kommt ins Helligkeitsregister an 0x02)
I2cwbyte &b00000011 (in´s Scan Limit Register an 0x03)
I2cwbyte &b00000001 (in´s Configuration Register an 0x04)
I2cstop
I2cstart
I2cwbyte &b01110000
I2cwbyte &b00100000 (es ginge auch &h20 !!)
I2cwbyte Einer
I2cwbyte Zehner
I2cstop
JEAHHHHHHHHHHHH, it works right that way. THANX
Resümierend, warum habe ich das nicht gerafft?
- Das Datenblatt ist sehr kompliziert geschrieben und man muss sich wirklich Zeit nehmen, um das zu verstehen.
- Decode-Mode bedeutet, dass nicht nur die reinen Balken der Anzeigen angesprochen werden, sondern die Zahl auch dargestellt wird. Auch wenn es sich um eine Hexadezimale Ausgabe handelt, was bei Zahlen von 0 bis 9 nicht ins Gewicht fällt.
- STOP bedeutet, dass das automatische Hochzählen gestoppt wird und der nächste Binärwert wieder als Adresse und nicht als Wert gelesen wird.
jetzt läufts. Danke nochmals.
Hallo,
Das ist normal, bei etwas komplexeren Bausteinen.
Manche wichtigen Hinweise findet man oft nur in einem Nebensatz.
Es ist übrigens auch nicht einfach so ein Datenblatt zu schreiben.
Der Sprachstil ist zwar einfach, aber Synonyme sollte man tunlichst vermeiden, weil sie nur verwirren. Auch sollten unübliche Begriffe immer erst erklärt werden, wenn sie im Text neu auftauchen und nicht erst 7 Kapitel später..
Oft muss man das Ganze zuerst einmal durchlesen um die Übersicht über das Dokument zu erhalten und dann die für einem wichtigen Kapitel noch ein twites mal.
Wobei das Datenblatt zum MAX6958 mit 20 Seiten noch klein und übersichtlich ist.
Bei einem Mikrocontroller, und anderen ähnlich komplexen Bausteinen, muss man mit 1'000 bis 1'500 Seiten alleine für die Hardware rechnen. Dann kommen nochmals um die 1'000 Seiten für die Beschreibung der CPU der CPU hinzu. Die ganzen App-Notes sind oft auch noch hilfreich.
Hinzu kommt oft noch das Pflichtenheft und jede Menge Normen.
Da ist man bei einer neuen Entwicklung oft tage- bis wochenlang nur mit lesen beschäftigt.
Das gehört aber alles zum täglichen Brot eines Elektronikers!
MfG Peter(TOO)
Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?
Lesezeichen