Hallo Stefan.
Die Adressierung am I2C-Bus wird m.W. je nach Bibliothek unterschiedlich gehandhabt: die einen betrachten die Adresse plus das 0-Bit für's schreiben als Basisadresse (Bits 7..0) und addieren beim lesen Eins dazu, die anderen betrachten nur den festen Teil (Bits 7..1) als Basisadresse und handhaben das R/W-Bit isoliert davon. So können die Adressen für ein-und-den-selben Baustein eben hex40 (für schreiben) und hex41 (für lesen) sein oder hex20 (also rechtsbündig gedacht ohne das R/W) plus das R/W-Flag.
Zum anderen kommen mir die Start- und Stopbefehle der I2C-Bibliothek rein aus der Sicht eines Outsiders etwas spanisch vor: Explizites Eröffnen und Beenden der Kommunikation, dito auch mal scheinbar implizit; Schreiben einer Adresse und dann Wire.Requestfrom(...) mit seinen zwei Argumenten - ich finde da die Strukturen des Busprotokolls nicht wieder, wie ich sie mir auf Assemblerebene angeeignet habe.
Bist du dir sicher, dass die gewählte Befehlsfolge wirklich das erforderliche Busprotokoll erzeugt? (Ich behaupte nicht, dass sie es nicht täte !!!!)
Gruß
RoboHolIC
Lesezeichen