Gast
#2354570
Hi an alle! Ich möchte mit dem µC LM3S8938 per I2C unter anderem einen PCF8574 ansteuern. Ich verwende zur Programmierung StellarisWare und IAR. An den PCF sind sowohl Taster als auch eine LED angeschlossen. Das senden von Befehlen funktioniert ohne Probleme und ich kann die LED steuern. Allerdings will ich natürlich auch einlesen welche Pegel gerade anliegen um die Taster abfragen zu können. Und da liegt das Problem... Wenn ich dem PCF z.B. 0xFF sende, messe ich auch an allen Pins einen HighPegel von 3,3V. Wenn ich nun direkt einlese welche Pegel anliegen sollte er mir doch auch genau diesen Wert zurückliefern?! Um herauszufinden welchen Wert der µC zurückgeliefert bekommt, habe ich einen weiteren PCF mit 8 LEDs angeschlossen um mir so den Wert anzeigen zu lassen! Jetzt sende ich den eingelesenen Wert direkt an den zweiten PCF und es bleiben alle LEDs aus... Die Adressen der PCF sind durch Jumper verschieden und ich kann auch beide ohne weiteres mit meinem Programm ansteuern! Es muss also irgendwo bei der Programmierung des Einlesens ein Fehler sein, ich weiss nur einfach nicht wo! Ich hoffe ihr könnt mir helfen! Der Fehler müsste meiner Meinung nach in diesem Bereich des Codes liegen, da ich mit diesen Zeilen versuche die Pegel zu lesen. I2CMasterSlaveAddrSet(I2C0_MASTER_BASE, SLAVE_ADDRESS, true); I2CMasterControl(I2C0_MASTER_BASE, I2C_MASTER_CMD_SINGLE_RECEIVE); ulDataRx[0] = I2CMasterDataGet(I2C0_MASTER_BASE); Im Anhang ist eine *.pdf in der die Befehle für den µC erklärt sind! Ab Seite 153 sind die I2C Befehle zu finden.