Hi, ich habe das gleiche Problem mit dem I2C-Bus wie in diesem englischsprachigen Thread: http://www.multiwii.com/forum/viewtopic.php?f=8&t=2182 Die Kommunikation mit wire.h funktioniert, aber mit dem i2c code von multiwii funktioniert es nicht. Die Komunikation wurde in beiden Fällen mit einem Oszilloskop analysiert und in einem bunten Bildchen veröffentlicht: http://www.multiwii.com/forum/download/file.php?id=1339&mode=view Kann mir bitte jemand den Unterschied zwischen Plot 3 und 4 auf diesem Bild erklären? Es scheint nur einen kleinen Unterschied in dem rot markierten Bereich zu geben. Ich würde gerne den code aus dem multiwii-Projekt verwenden, da ich bei der Verwendung von wire.h ein Speicherplatzproblem habe.
Lorenzo85 schrieb: > Kann mir bitte jemand den Unterschied zwischen Plot 3 und 4 auf diesem > Bild erklären? Es scheint nur einen kleinen Unterschied in dem rot > markierten Bereich zu geben. Ohne es jetzt exakt analysiert zu haben würde ich sagen: 3 -> Nach Write Stop, danach wieder Start und dann Read 4 -> Nach Write Repeated Start und dann Read
Das würde ich auch sagen und repeated start sorgt ja gerne mal für Probleme...
Danke für den Hinweis mit dem repeated start. Ich habe nun direkt vor dem repeated Start ein Stop und eine kleine Pause eingefügt, und nun funktioniert es.
Hallo, ich habe gerade so meine Probleme mit der I2C Bibliothek von Peter Fleury und würde diesen Beitrag gerne wieder etwas aufleben lassen. Vielleicht mal zu dem Problem..... Ich nutze das TFT-Display "eDIPTFT43-A" von EA welches über I2C mit einem ATmega16 verbunden ist. Der ATmega ist mit C programmiert. Für die I2C Kommunikation habe ich die Bibliothek von Peter Fleury verwendet (twimaster.c). Die Kommunikation habe ich zu Beginn mit einfachen Befehlen zwischen Controller und Display getestet und ich war der Meinung, dass diese funktioniert. Nachdem ich jetzt eine weitere Funktion geschrieben habe, die aber noch nicht aufgerufen wird steht plötzlich mein Bus (siehe Bild). Sobald ich die Funktion auskommentiere läuft der Bus wieder. Allerdings hängt dieser sich wieder nach einigen Befehlen wieder auf. Die Funktion die dieses "Problem" verursacht heißt "checkeMaschinenauswahl" und befindet sich in der Source "display.c". Ich denke, dass ich ein Pointer-Problem habe. Leider kann ich nicht verstehen wo das Problem liegen soll. Habe ich vielleicht bei der Verwendung der Bibliothek etwas falsch gemacht? Ich suche dieses Problem jetzt schon seit einigen Tagen und hoffe das mir hier jemand weiterhelfen kann. Vielen Dank für eure Hilfe.
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.