PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AVR-Library erstellen



walkonshit
15.12.2008, 20:57
Hallo liebe Leute,

kann mir jemand eine Anleitung geben, wie ich eine AVR-C Library selber erstelle und diese auch in einem Projekt zu verwenden. Diese Library soll unabhängig existieren, d.h. jeder andere soll sie ebenfalls sofort für sein Projekt verwenden können. Als Programme sthen mir WinAVR und Eclipse mit den nötigem Plugin zur Verfügung.
Ich hoffe auch schnelle Hilfe.

MfG walkonshit

Ceos
15.12.2008, 21:25
einfach headerfiles und die zugehörigen c-files schreiben, schön in einen ordner schieben, die passenden includes in das programm, fertig ist der spuk ... oder versteh ich dich grad falsch ?

walkonshit
16.12.2008, 08:42
Falls das, was du geschrieben hast richtig ist, beschreibe es bitte mal genauer, denn so würde ich auch beschreiben, was ich bereits versucht habe, allersdings ohne Erfolg

pyr0skull
16.12.2008, 09:17
Was funktioniert denn nicht? Brauchst doch nur das Headerfile mit Definitionen und Prototypen und das Sourcefile mit den entsprechenden Codeschnipseln.. Das Headerfile mit include einbinden und das wars.

Wie bist du denn vorgegangen?

walkonshit
16.12.2008, 09:30
ich habe eine function.c geschrieben mit einer Funktion. In dieser Datei habe ich die header.h includiert. Danach die main.c geschrieben und habe darin leiglich einen Funktionsaufruf dieser Funktion bekomme aber einen make-Fehler

zerush
16.12.2008, 16:07
Du musst natürlich die .c Datei auch mit compilieren und im makefile mit angeben. Wenn du ohne makefile arbeitest, dann musst du mal fucken, ob du bei dem Plugin irgendwo weitere Dateien angeben kannst...

walkonshit
16.12.2008, 17:58
Description Resource Path Location Type
make: *** [AVRTest.elf] Error 1 AVR Test 0 C/C++ Problem

make: *** [main.o] Error 1 Main 0 C/C++ Problem

mylib.h: No such file or directory main.c Main 7 C/C++ Problem

Diese Fehler erhalte ich beim kompilieren

thewulf00
16.12.2008, 19:20
Gib mal die ersten paar Zeilen jeder Datei an.

walkonshit
16.12.2008, 19:50
#ifndef MYLIB_H_
#define MYLIB_H_


#endif /* MYLIB_H_ */

int libmylibfunc1(unsigned char);




#include "mylib.h"

int
libmylibfunc1(unsigned char cParam)
{
int rVal = 0;

rVal = (int)((unsigned int) cParam);
return rVal;
}


#include "mylib.h"

int
main(void)
{
return libmylibfunc1('A');
}

so das dürfte das sein was du brauchst

zerush
16.12.2008, 19:55
Wo befindet sich denn die mylib.h ?
Wenn nicht im selben Ordner wie die main.c, dann musst du ein Compilerflag setzen:

-I ein/ordner

Bzw. irgendwo in dem Plugin suchen, wo man include directories angeben kann.

mfg,
Thomas

walkonshit
16.12.2008, 20:09
sind im selbern ordner, allerdings hab ich auch in eclipse den pfad hinzugefügt von einem 2ten ordner, in dem die datei ebenfalls ist