Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Jochen, > > > Leider schaltet das Relais nicht. :-( Da ich leider immer noch nicht so sicher bin, ob ich die Sache > > mit den Jumpern zur Adresseneinstellung der Platine richtig verstanden habe, habe ich einfach > > adr von 0 ... 63 laufen lassen -- ebenfalls ohne Erfolg. > > Im Auslieferungszustand sind die Jumper so gesetzt, daß sich die Modul-interne Adresse 0 > ergibt (A2:GND - A1:SCL - A0:GND) > > Hier hatte ich bereits etas über die Adressierung des MAX7311 geschrieben: > <a href="lesen.php?eintrag=8472">lesen.php?eintrag=8472</a> > > > Im Forum bin ich nun auf mehrere Beispiele gestoßen, die genau wie mein Beispiel aussehen. Da > > fehlt allerdings fast immer das i2c.init(), obwohl ich in irgend einem Modultext gelesen habe, dass es > > benötigt wird. > > Wo soll denn das stehen ???? > Den Init des Busses übernimmt bereits das OS. > Die Funktion init() in i2c.c2 wird nur benötigt, wenn man die Ports des I²C-Busses > anderweitig "mißbraucht" und dann wieder als I²C-Bus benutzen will. > > Ein i2c.init() ist daher genauso unnötig, wie > ein lcdext.clear() nach einem lcdext.init() (da bei einem Init auch das Display gelöscht wird). > > > > Desweiteren habe ich nirgendwo eine Erklärung für die Parameter von setDDR() gefunden. > > Ich weiß also nicht, ob 0 nun den Port zum Input oder zum Output umschaltet. Hier wären doch > > sprechende Konstanten eine schöne Idee, oder? > > Beim MAX7311 bedeutet ein Low-Pegel im DDR-Register "Ausgang", ein High-Pegel "Eingang". > Dementsprechend muß dies bei den Funktionen gehandhabt werden. > Bei setDDR() bedeutet 0 = Ausgang und ungleich 0 Eingang. > In den anderen DDR-Funktionen setDDRn() setDDRb() und setDDRw() wird > entsprechend mit dem Bitmuster bestimmt, welche Ports Ein oder Ausgänge sein sollen. > > > > Aber zurück zu meinem Problem. SDA und SCL sind anfangs beide auf +5V, so wie es sein soll. > > Falls mein Messgerät schnell genug ist (ist es vermutlich ja wohl nicht), dann bleiben beide auch > > immer konstant auf 5V -- da ändert sich nie was. > > Mit eine Multimeter wirst Du auch selten etwas anderes Feststellen können. > Der Standardpegel ist 5V, wenn am Bus gerade nichts passiert. > Wird nur einmal pro sekunde auf dem Bus mit ein paar Bytes zugegriffen, so bekommst > Du das bei 100kHz garnicht mit. > > > > Ich habe mir deshalb mal den Status von setDDRw() > > ausgeben lassen. Der ist immer 0! Das erklärt wohl, warum die Relais nicht schalten, aber ich habe > > keine Ahnung, wo der Fehler liegen könnte. > > Der Rückgabewert bedeutet entweder, daß die falsche Adresse angegeben wurde, oder > etwas mit dem Anschluß nicht stimmt. > > Für Adresse 0 müssen die Jumper von oben nach unten bei der Relaisplatine so aussehen: > (Ansicht Relaisklemmen oben, wie auf den Fotos bei CCTools) > - links unten > - rechts unten > - links unten > Die Jumper müssen immer waagerecht sein. > > > MfG André H.