Peter fleurys i2c libary AVR Studio multiple definitions

Gast #2121443
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
Gast #2121453
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.
Gast #2121459
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?
Gast #2121464
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
Gast #2121844
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.