PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Software-I2C Library



p_mork
22.03.2007, 15:23
Hallo,

kann mit jemand eine Software-I2C Library empfehlen? Ich hab nämlich die Hw-I2C-Pins mit etwas anderem belegt, was ich nur ungern wieder entferne.

Danke

MfG Mark

triplebit
22.03.2007, 18:06
Ich denke, das Hardware besser wäre und Du im Endeffekt weniger Aufwand hast!

Für diesen Fall kann ich Dir die Umsetzung von Atmel empfehlen! Kann Dir die angepasste dann auch posten.

gruß

martin

p_mork
23.03.2007, 12:16
Leider habe ich wie gesagt keine I2C-Pins frei, da bei meinem AtMega32 PORTC mit dem Datenbus einer Cam belegt ist. Gibts wirklich keine fertigen I2C-Sofrware-Master-Libraries? Ich meine so schwer kanns ja nicht sein, denn der Master erzeugt den Takt ja selbst uns muss deshalb keine Zeitvorgaben einhalten.

MfG Mark

uwegw
23.03.2007, 14:16
Die altbekannte lib von P. Fleury ( jump.to/fleury ). Da sind sowohl Hardware- als auch Software-I2C enthalten. Hat den Vorteil, dass die einzelnen Funktionen be beiden Varianten dieselben Namen und Verahlten haben. Man kann also sehr einfach umsteigen.

p_mork
24.03.2007, 20:00
Hallo uwegw,

erstmal danke für den Link. Leider klappt die Sw-Lib bei mir nur in C, denn wenn ich versuche, diese mit einem C++-Code zum laufen zu bringen, kommen bei mir Meldungen wie "undefined reference to i2c_init" und so, wenn ich die Datei in .c umbenenne und das makefile entsprechend ändere klappt es komischerweise wieder.

MfG Mark

PicNick
25.03.2007, 10:13
Is wahrscheinlich die Eigenschaft von allen c++++, solche Namen zu erweitern, und dann find' er sie nicht.
Es sollte eigentlich irgendwelche Flags etc. geben, wie bei Windows, das zu beheben. ("extern "C")
Da gibt's Gurus im Forum für sowas. Schau mal in unserer Wiki, wer weiss.

Leverator
02.04.2007, 10:50
p_mork, kompilierst Du den Sourcecode mit avr-g++? Wenn ich C++-Code mit avr-gcc kompiliere, dann bekomme ich auch immer genau die Fehlermeldung.

Vielleicht hilfts ja,
Gruß Lev

p_mork
02.04.2007, 15:50
Ich compilier das ganze mit g++. Sonst würde er ja auch bei der ersten Klasse einen Fehler melden, bei mir meldet er aber nur das mit "undefined reference...". Ist jetzt aber eh egal, da ich auf ARMs wegen des einfacheren Handlings mit Zeigern(Von-Neumann-Architektur) und größerem Speicher umgestiegen bin.

MfG Mark