Hallo geschätzes Forum, ich möchte über I2C 2 Teilnehmer anschließen. Zum Einen wäre das ein EEprom (24C256) und zum Anderen ein Luftdrucksensor (BMP085 von Bosch). Libs zu Hauf gibt es für jeden Einzelnen, aber für beide zusammen kann ich nichts finden. Genauso wenig finde ich über die Suchmaschine oder hier, wie man 2 Teilnehmer konfigurieren muss (Master/Slave). Davon abgesehen muss ich ehrlich zugeben, dass ich jetz nicht unbedingt der große Programmierexperte bin. Zustand momentan ist so, dass der EEprom erfolgreich eingebunden wurde. D.h. das Problem, welches ich habe, den BMP085 irgendwie jetzt ins System zu bringen. Die 2 24C64-Files laufen tadellos. Wie binde ich jetzt das i2cmaster.h und twimaster.c File darin ein? Oder kann man die getrennt laufen lassen? Bin grade ein bißchen am Verzweifeln. Ich wäre für eine Hilfe sehr dankbar. Bitte keine Kommentare: Dann lerne das Programmieren........ Gruss Stefan
:
Bearbeitet durch User
Du weisst, was du da tust? Du weisst, wie I2c funktioniert? So mit Adressbyte etc? Was bedeutet: die Files laufen tadellos? Sie kompilieren? Oder hast du schon Daten gelesen/geschrieben? Warum kannst du dann das Wissen der Eproms nicht auf den Luftdrucksensors transferieren? Oder hast du nur irgend welche Sourcen irgend woher kopiert?
Stefan B. schrieb: > Libs zu Hauf gibt es für jeden Einzelnen, aber für beide zusammen kann > ich nichts finden. Genauso wenig finde ich über die Suchmaschine oder > hier, wie man 2 Teilnehmer konfigurieren muss (Master/Slave). Wenn man für jedes Pärchen von 2 I2C Geräten eine eigene Lib bräuchte, hätte man das Thema auch ziemlich verfehlt. Außer deinen beiden I2C-Teilnehmern (EEPROM und Drucksensor) hast du als dritten Teilnehmer immer deinen µC als Master. Die I2C Grundfunktionen sind für beide Slaves gleich. Unterschiede bestehen in den Funktionen der Register und den zu übertragenden Daten. Und ob die Bibliothek nun I2C oder TWI heißt, dürfte ziemlich egal sein ;-) Dein Hauptprogramm wirst du dir, abhängig von den gewünschten Funktionen, wohl selber schreiben müssen, weil das abhängig davon ist, was du außer "anschließen" mit deinen beiden Teilnehmern vor hast.
PittyJ schrieb: > Du weisst, was du da tust? Ähhm..... PittyJ schrieb: > Was bedeutet: die Files laufen tadellos? Der verbaute EEprom speichert meine Variablen und gelesen werden sie auch. PittyJ schrieb: > Warum kannst du dann das Wissen der Eproms nicht auf den > Luftdrucksensors transferieren? Das ist ja mein Problem, welches ich habe --> Stefan B. schrieb: > Davon > abgesehen muss ich ehrlich zugeben, dass ich jetz nicht unbedingt der > große Programmierexperte bin. Ich habe die Files aus dem Netz. PittyJ schrieb: > Oder hast du nur irgend welche Sourcen irgend woher kopiert? Leider ja... Michael schrieb: > Dein Hauptprogramm wirst du dir, abhängig von den gewünschten > Funktionen, wohl selber schreiben müssen, weil das abhängig davon ist, > was du außer "anschließen" mit deinen beiden Teilnehmern vor hast. Das ist fertig und läuft. Halt noch ohne den BMP085. Und den möchte ich ja gerne noch irgendwie darin einbinden. Beitrag "Unabhängiger Timer gesucht"
Du solltest die Libraries der beiden Chips so umschreiben, dass sie auf eine gemeinsame Library für I2C Kommunikation aufsetzen. Dann ist sicher gestellt, dass sie sich nicht gegenseitig stören. Abgesehen davon: Du kannst beide Chips einfach wechselweise ansprechen, denn sie haben ja unterschiedliche Adressen. Wo ist dein Problem? Was klappt nicht? Hast Du die beiden Chips wenigstens schonmal einzeln unabhängig voneinander angesprochen? Falls nicht, ist die primäre Frage nicht die von Dir gestellte (wie bringe ich beide zusammen), sondern: Wie benutze ich die eine oder andere Library. Also, verrate uns, was nicht klappt. "Irgendwie einbinden" ist ein bisschen wenig, da fragt man sich, ob Du es überhaupt versucht hast und was Du versucht hast.
Der BMP085-Code benutzt die I2C-Bibliothek von Fleury (i2cmaster.h + twimaster.c). Das ist doch schon mal was. Die Webseite zu Peter Fleurys I2C-Bibliothek: http://homepage.hispeed.ch/peterfleury/group__pfleury__ic2master.html Was Du jetzt machen musst, ist die Ansteuerung des 24C64 und 24C256 mithilfe der Fleury-Bibliothek zu programmieren. Mit der Anleitung zur Bibliothek (auf der Webseite oben) und den Datenblättern der EEPROMs sollte das eigentlich zu schaffen sein. Nur mit Copy & Paste ist man halt ständig auf andere angewiesen, und das macht auf die Dauer auch nicht wirklich Spaß.
Stefan schrieb: > Wo ist dein Problem? Was klappt nicht? Ich bringe mir gcc die letzte Zeit selbst per "Learning by Doing" bei. Würde es nicht wahnsinnigen Spaß machen und hätte ich nicht schon für mich "richtige" Erfolgserlebnisse, hätte ich schon längst alles hingeworfen, denn ein rießiger Teil meiner Freizeit geht dabei drauf. Ist möglicherweise bei jedem so ;-) Mal abgesehen von denen, die das von Grund auf lernen und ihre berufliche Laufbahn danach ausrichten. Für mich ist es ein wahnsinnig interessantes Hobby mit unendlich vielen Möglichkeiten. Stefan schrieb: > Also, verrate uns, was nicht klappt. "Irgendwie einbinden" ist ein > bisschen wenig, da fragt man sich, ob Du es überhaupt versucht hast und > was Du versucht hast. In Sachen I2C fehlen mir die Grundkenntnisse, die ich versuche, mit meinem "Lernprojekt" Thermometer beizubringen. Wenn ich ein paar Anhaltspunkte habe, dann "wurschtel" ich mich da durch, davon kann ausgegangen werden. Die Lib für den 24C64 habe ich kopiert und bis jetzt nicht weiter beachtet, weil es funktioniert ja. Nun sollte noch der BMP085 dazu, jetzt werde ich mich doch intensiver mit I2C beschäftigen müssen. Ich lag da wohl falsch, dass man relativ einfach als "Anfänger" die beiden Bus-Teilnehmer zum zusammenarbeiten bekommt. Jope schrieb: > Nur mit Copy & Paste ist man > halt ständig auf andere angewiesen Das ist ganz sicher nur am Anfang so......
Stefan B. schrieb: > Nun sollte noch der BMP085 dazu, jetzt werde ich mich doch intensiver mit > I2C beschäftigen müssen. Es ist bestimmt nicht verkehrt, wenn du das Grundprinzip vom I2C verstanden hast, so dass du weißt was du tust und auch prüfen kannst, ob deine I2C-Kommunikation dem Datenblatt des jeweiligen Slaves entspicht.
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.