Forum: Compiler & IDEs Peter fleurys i2c libary AVR Studio multiple definitions


von RobertmcDonald (Gast)


Lesenswert?

Hallo,

benutze einen Atmega2560 und AVR Studio 4.18
wenn ich die Dateien einbinde: Also i2cmaster.h unter header und 
twimaster.c unter soruce sowie i2cmaster.s unter source erhalte ich 
multiple definitions Fehler. Woran liegt das/ oder bindet man nur eine 
der ebiden Dateien ein nachdem eins assembler ist und das andere C? Auf 
der Website hab ich leider nur die Doxygen Doku gefunden.

Danke,
Robert

von stephu (Gast)


Lesenswert?

Für was includierst du c und assemlber?

This I2c library is implemented as a compact assembler software 
implementation of the I2C protocol which runs on any AVR (i2cmaster.S) 
and as a TWI hardware interface for all AVR with built-in TWI hardware 
(twimaster.c). Since the API for these two implementations is exactly 
the same, an application can be linked either against the software I2C 
implementation or the hardware I2C implementation.

von RobertmcDonald (Gast)


Lesenswert?

Hmm habe halt noch mehr auf meinem Controller ehrlich gesagt hab ich 
auch nicht den geringsten Plan von Assemblern. D.h ich benutze wenn ich 
die Software compilieren will mit AVR GCC nur die c Datei und den 
Header?

von stephu (Gast)


Lesenswert?

entweder assembler oder c... du kannst schon c als auch assembler im 
gleichen projekt verwenden. jedoch kannst du nicht die gleiche funktion 
mit dem gleichen bezeichner in c und als in assembler haben... --> sonst 
kommt deine Fehlermeldung... (Sie sagt dies ja aus...) gruss

von Oliver (Gast)


Lesenswert?

RobertmcDonald schrieb:
> D.h ich benutze wenn ich
> die Software compilieren will mit AVR GCC nur die c Datei und den
> Header?

Jein. Im Assembler-File steckt die Software-Implementierung, im .c-File 
die Hardwareimplementiereung. Du solltest die Version zu deinem Programm 
hinzufügen, die du benötigst.


Und wenn dir das Angelsächsisch der Doku nicht so ganz geheuer ist, 
jagts du das halt mal durch babelfish:

"Diese I2c Bibliothek wird während eine kompakte 
Versammlungsteilnehmer-Software-Implementierung des I2C Protokolls 
eingeführt, das auf jeden möglichen AVR läuft (i2cmaster. S) und wie 
eine TWI Hardware-Schnittstelle für allen AVR mit eingebauter TWI 
Hardware (twimaster.c). Da die API für diese zwei Implementierungen 
genau die selbe ist, kann eine Anwendung entweder gegen die 
Implementierung der Software I2C oder die Implementierung der Hardware 
I2C verbunden werden."

Nicht schön, aber verständlich.

Oliver

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
Noch kein Account? Hier anmelden.