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 Detlef, Rene, Jörg, Joerg, Icebear, > > Probleme beim Multithreading mit dem I²C-Capture sind mir nicht bekannt. > Auch ich greife in unterschiedlichen Projekten aus vielen Threads auf den I²C-Bus zu. > (teilw. über 10 zugreifende Threads) > Das I²C-Capture ist identisch mit den Capture des Moduls cap.c2. > Daran kann es nicht liegen. > Es wäre aber denkbar, daß irgendeine Funktion das I²C-Capture nicht oder > nicht korrekt nutzt. Ich möchte hier nicht ausschließen, daß in einer Funktion > der Module sich ein Fehler eingeschlichen hat. > Es reicht schon, daß an einer Stelle versehentlich das I²C-Capture zufrüh mit > i2c.stop() gelöst wird, als diese mit i2c.cstop() zu halten. > Möglich wäre auch eine ungecapturete I²C-Bus-Routine, die erst ab einem bestimmten > "Zugriffsmuster" auffällt. > Es kann aber auch hardwarebedingt sein, wenn der Bus grenzwertig betrieben, daß > es am Bus vereinzelt zu Störungen kommt. > (z.B. zu viele Slaves pro Bussegment bzw. ungünstiges Verhältnis Anzahl/Länge) > Dies kann dazu führen, daß ab einer bestimmten Busauslastung Störungen entstehen. > Die Analyse ist dann natürlich schwierig. > > Wichtig ist auf jeden Fall mögliche Busfehler weitgehenst abzufangen. > Das fängt damit an, die Rückgabewerte der Funktionen auszuwerten, ob Slaves ansprechbar sind. > Ein zweiter Schritt kann gerade beim Auslesen sein, die Abfrage doppelt bzw. > mehrfach auszuführen, um die eingelesenen Daten zu verifizieren. > Bei Ausgängen, sollte im zweifelsfall zurückgelesen werden, um falsche Daten > korrigieren zu können, bevor das Relais reagiert. > > Man muß sich immer vor Augen halten, daß es beim I²C-Bus keinen Mechanismus > gibt, um falsche Daten auszuschließen. (z.B. duch Prüfsummen) > > MfG André H. > > > > > > Hat jemand von Euch schon den I2C exessiv in mehreren Threads verwendet? > > > > Ich habe folgendes Problem. Ich habe eine Haussteuerung mit ca. 80 Eingängen, > > ca. 80 Digitalen Ausgängen und 24 Dimmern aufgebaut. Dazu habe ich im wesentlichen 20 MAX7311 > > verwendet.Von der Logik her gibt es mehrere Threads, einen, der zyklisch alle Eingänge abfragt, einen, > > der direkte Ausgänge steuert und einen, der Dimmer soft an un ab dimmt. Funktioniert soweit > > einwandfrei, allerdings, sobald nur noch ein Thread dazukommt, der auch auf den I2C zugreift, > > fängt das ganze System zu spinnen an. > > (Im Schlafzimmer dimmt das Licht runter, und unten im WOZI fahren plötzlich Jalousien los) > > Mein Verdacht, die Captures (cstart, stop) funktionieren > > irgendwie nicht. Fehler in der Software kann ich nicht finden, jede Komponente für sich funktioniert, > > nur als System zusammen gehts den Bach runter. > > > > Hat irgendjemand ähnliche Erfahrungen gemacht? > > > > Viele Grüße > > > > Detlef