PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C/TWI Benötige Hilfestellung zum Master



Teslafan
11.01.2012, 20:45
Servus ihr lieben,

weiß grad echt nicht weiter. versuche jetzt seit geschlagenen 2 Wochen den TWI Master zum laufen zu bekommen. Hab mich zuerst durch die Appnote 315 gequält und den Code mühsam für den GCC Compiler umgemodelt, leider vergebens. Dann noch an 2 weiteren Codeschnippseln rumprobiert auch umsonst. Nachdem ich viel über den Code von Peter Fleury gelesen hatte, hab ich mich diesem zugewandt und wollte diesen nun ausprobieren. Doch hier beginnen die Probleme schon beim einbindn der I2Cmaster.h. Hab sie in mein main.c Verzeichnis kopiert doch irgendwie findet der Compiler die header nicht obwohl sie unter den header Dateien eingebunden ist.

#include <i2cmaster.h> --> ../TWI_Test_Peter.c:12:23: error: i2cmaster.h: No such file or directory

Hab dann gegoogelt und gelesen das man "#include <i2cmaster.h>" in "#include "i2cmaster.h"" umwandeln soll.

#include "i2cmaster.h" --> c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr5/crtm16.o:(.init9+0x0): undefined reference to `main'

Hat jemand vielleicht nen Tip oder ein Codeschnipsel von nem funktionierenden Master?

Gruß Andi

radbruch
11.01.2012, 21:00
Hallo

<> erwartet die Datei im GCC-Pfad, "" erwartet sie im selben Verzeichniss wie der Quellcode deines Programms. Wenn die Datei mit <> nicht gefunden wird, obwohl sie unter den Headerdateien gespeicher ist, dann stimmt wohl etwas mit dem Suchpfad nicht. Da dein Programm aber sicher nicht bei diesen Headerdateien gespeichert ist, wird i2cmaster.h mit "" auch nicht gefunden. Einfacher Test: i2cmaster.h und .c in das Verzeichniss deines Programmquellcodes kopieren und mit "" einbinden.

Welchen Kontroller verwendest du?

Gruß

mic

[Edit]
Vielleicht steckt da mehr dahinter, ich hab's aber noch nicht genauer untersucht:
http://www.google.de/search?q=crtm16.o
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=87247

Scheinbar hilft eine erneute Installation von WinAVR.
(ohne Gewähr, warte bitte auf weitere Wortmeldungen)

Teslafan
11.01.2012, 21:13
OK, ich habe keine i2cmaster.c gehört zu einer header immer zwingend eine .c? Wenn ja hab ich ein Problem wil in dem .zip Packet von Peter Fleury keine .c enthalten ist. Es ist noch eine i2cmaster.s, diese wird laut seiner anleitung aber nur für den Software TWI benötigt.

Teslafan
11.01.2012, 21:14
Controller ist ein ATmega 16 der verfügt über Hardware TWI

Teslafan
11.01.2012, 21:30
Hab noch ne i2cmaster.c gefunden jetzt funzt der Code :) Ob bei meinem Slave auch was ankommt probier ich morgen. Für heute reichts :)
Vielen Dank @ radbruch ohne dich würde ich jetzt noch suchen :)

radbruch
11.01.2012, 21:32
Es könnte auch die Datei twimaster.c sein, da steht im Programmkopf: "* Usage: API compatible with I2C Software Library i2cmaster.h"

Ehrlich gesagt verblüfft mich der Aufbau der Library, keine Ahnung, wie das funktionieren soll. In i2cmaster.h steht zwar #include i2cmaster.c, aber was das DOXYGEN-Zeugs bedeutet und bewirkt kann ich nicht sagen:

http://jump.to/fleury

Teslafan
11.01.2012, 21:49
Wie gesagt, vielen Dank für deine Hilfe werde es morgen mal testen und dann berichten :) Habe leider noch kein Oszi oder Logic Analyzer deshalb hoffe ich das mein Slave gleich pariert :)

Teslafan
15.01.2012, 12:53
Sorry das ich erst jetzt antworte, also das mit dem Übertragen hat jetzt problemlos funktioniert :) Hab mir jetzt mal nen Logik Analyser bestellt damit ich auch sichtbar machen kann was aufm Bus passiert.

Nochmals vielen Dank @ Radbruch