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.
@ Hummelmann (Gast) >steuern. Allerdings will ich natürlich auch einlesen welche Pegel gerade >anliegen um die Taster abfragen zu können. Und da liegt das Problem... Warum? Lies doch einfach vom PCF. http://www.mikrocontroller.net/articles/Port-Expander_PCF8574 Die Pins, welche als Eingang dienen sollen, müssen auf High setzt werden. >HighPegel von 3,3V. Wenn ich nun direkt einlese welche Pegel anliegen >sollte er mir doch auch genau diesen Wert zurückliefern?! Ja, wenn dein Taster gegen Masse schaltet. MfG Falk
Hi, Danke für die schnelle Antwort erst schonmal! Falk Brunner schrieb: > Warum? Lies doch einfach vom PCF. Ja, ich meine ja das ich den PCF abfragen will. Ich möchte also mit dem LM3S8938 den PCF abfragen und das eingelesene Byte dann als variable weiterverwenden. Bei den Tastern handelt es sich um eine Matrix-Tastatur. Link: http://www.conrad.de/ce/de/product/709840/TASTATUR-MATRIX-3X4 Sie hat für jede Spalte und für jede Zeile 1 Pin-Anschluss an der Rückseite. Ich habe mir das jetzt so vorgestellt, dass ich auf dem Zeilen-Pin eine 0 ausgebe, während die Pins der Spalten mit einem 10k Pull-Up-Widerstand auf 1 liegen. Wird nun in der Zeile in der ich die 0 ausgebe eine Taste gedrückt, wird auch die entsprechende Spalte auf 0 gezogen. Ich frage also per Polling dauerhaft den PCF ab... Allerdings lese ich nur 0en ein, obwohl ich etwas anderes ausgebe... MfG Hummelmann
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.