Hallo,
dieses Problem hat sich ausnahmsweise ganz einfach selbst gelöst: Durch
Copy&Paste war war in der übergeordneten Routine, die das I2C-Device
ansprach, die Slaveadresse in den Master Read Funktionsaufrufen falsch
angegeben, in den Master Write Funktionsaufrufen dagegen richtig... Kaum
ist das korrigiert worden, läuft auch der Master Read. Die obige
Funktion funktioniert also doch.
So etwas kann schon mal vorkommen, wenn das Gesamtprojekt richtig groß
ist, es ist eine Fernbedienung für einen Audio Mehrkanalvorverstärker,
die auch alle anderen Geräte bedienen soll. Die hat ein 7" LCD mit
resistivem Touchscreen, einen optischen Drehgeber (für Lautstärke usw.),
einen Lichtsensor (I2C, um die LCD-Hintergrundbeleutung automatisch zu
dimmen, wichtig für ein Heimkino), einen Beschleunigungssensor (um die
Fernbedienung automatisch aus dem Standby aufzuwecken, wenn man die
bewegt oder in die Hand nimmt), das Interface für den Touchscreen (I2C),
einen HF-Transceiver (SPI, Kommikation muß per Funk erfolgen, da der
Vorverstärker einen IR-Sender ansteuert, um alle anderen Geräte zu
bedienen) und noch eine SD-Karte... Ebenso auch noch das Powermanagement
für die Akkus. Der Vorverstärker selber ist noch eine ganze Ecke
aufwendiger. Leider gibt es keine Fertiggeräte, die meine Anforderungen
alle erfüllen, daher der Selbstbau.
Gruß
Andy