Also die I²C Geschichte ist ja unter Bascom (womit ich programmiere) immer so ne heikle Geschichte. Funktioniert, aber nicht so ganz zu 100%...
Desshalb habe ich mir diesen Bus bei meinem aktuellen Roboter mal zu gemüte geführt, mir eine eigene Bibliothek in Assembler geschrieben und was soll ich sagen: Der Bus funktioniert einwandfrei. Bei dem jetzigen habe ich es noch folgender masen laufen:
Beim Initialisieren wird jeder Chip zum Slave mit der definierten Adresse. Sobald ein Chip Daten an einen anderen Chip senden will, macht er sich, insofern der Bus frei ist, selbst zum Master, sendet die Daten und macht sich direkt im Anschluss wieder zum Slave.
Multimaster ist das glaub ich nicht direkt, weil soweit ich das verstenden habe, bei Multimaster mehrere Master gleichzeitig am Bus hängen oder?

Egal.

Auf jeden Fall werden (orientiert am Display) immer 32 Byte Daten versendet.
Es soll z.B. so laufen:
Sensor vorn links erkennt Hindernis, aktiviert Interrupt vom Motor-Chip zum sofortigen stehen bleiben und sendet über Bus an den Hauptcontroler welcher Sensor geschalten hat. Dieser berechnet daraus dann (unter Beachtung, was zuvor alles so passiert ist) eine Ausweichroutine und gibt dann über den Bus die entsprechenden Fahr-Befehle an den Motor-Chip. Während der Ausweichroutine ist der Sensorchip aber jeder Zeit berechtigt diese über den Interrupt zu unterbrechen, damit beim Ausweichen nichts umgefahren wird.

Die Interruptsteuerung hat sich bei mir recht gut bewährt, da über den Bus doch einige Verzögerungen entstehen und ich es anfangs bei dem aktuellen Roboter auch hatte, das die verzögerung so lange war, das er trotz erkennung gegen die Wand gefahren ist, weil die Reaktionszeit einfach zu lang ist übern Bus. Desshalb diese Interrupt-Steuerung

Was mich an der ganzen Geschichte etwas irritiert: Ich benötige 4 uC.
Auf den meisten anderen Robotern ist meist nur 1 Chip. Was mach ich anders/falsch? ODer sind meine Programmierkünste doch noch zu schlecht; weil ich hätte null Plan wie man all diese Funktionen in einem Chip vereinen sollte...