Ich glaub', du denkst zu kompliziert
In deinem Fall gehst du am besten von EINEM Master aus.
1) Der sendet an seine Slaves mit Master-WRITE ein Byte, das den Modus dieser Slaves bestimmt.
d.h. dieses Kontrollbyte kriegen sie einfach irgendwann auf's Auge gedrückt.
2) Der holt von seinen Slaves mit Master-READ die Zwischen-Speicher-Bytes ab.
Beides kann er mit den stink-normalen Bascom I2c-Funktionen machen.
Die Slaves machen zwei Sachen:
1) je nach dem gerade aktuellen Kontroll-BYte kümmern sie sich um Tasten oder sonstwas
2) Sie lauschen am I2C Bus, dabei kommen zwei Status-Varianten:
2 a) Slave Receive: es kommt ein neues Kontroll-Byte
2 b) Slave Transmit: sie schicken ihre Datenbytes
Das geht am lockersten wohl mit der TWI-Interrupt Funktion, da haben sie die Hände frei für 1)
Konflikte und Reibereien am Bus kann es da nicht geben
Lesezeichen