Chris M. schrieb:
> Finde leider keine Dokumentation, die mir diese Frage beantwortet, bzw.
> fehlen mir vielleicht die richtigen Suchbegriffe.
Mach dir doch zu allererst klar, wie der I2C überhaupt funktioniert.
Dort kann es mehrere Master geben, also muß ein Master, der "dran"
sein will, warten, bis kein anderer Master den Bus mehr besitzt. Dann
kann der eine Start-Kondition veranstalten und dann sollte er auch den
Slave, mit dem er kommunizieren will, adressieren und zusehen, ob der
ihm ein ACK gibt. Anschließend kann er mit dem Slave nach Herzenslust
kommunizieren und zum Schluß mit einer Stop-Kondition den I2C wieder
freigeben.
So. Und nun informiere dich, wie der Raspberry sich am I2C denn so
benimmt. EInes sollte dir klar sein: Mit einer interruptgesteuerten oder
in verschiedene Threads aufgeteilten Software wirst du immer Probleme
haben, den I2C zu benutzen - solange du nicht software-intern dafür
sorgst, daß sich diese Threads o.ä. am I2C nicht in die Quere kommen.
Für deine Software würde ich dir raten, selbige eben nicht in
unterschiedliche Trampel-Dauerschleifen aufzuteilen, sondern mit Events
zu arbeiten. Dann entfallen nämlich diese Dauerschleifen ersatzlos und
das Verhalten deines Programmes wird deterministisch.
W.S.