Hallo, ich habe ein funktionierendes Programm. Innerhalb der Main Schleife rufe ich nur eine Funktion auf die ausserhalb der Main Schleife(davor) existiert. Das hat bis jetzt alles wunderbar funktioniert. Da innerhalb der Funktion Variablen definiert sind die auch in Main verwendet werden habe ich nun diese in eine Var.h kopiert und mit extern erweitert. Meine Funktion habe ich dann in ein weiteres File Funk.c kopiert und zuvor mit include die Var.h includet. Nun habe ich gelesen, dass ich nur die Funk.c in meine Source Files aufnehmen muss jedoch funktioniert dies nicht. Bei Keil habe ich immer noch eine zusätzliche Headerdatei mit den externen Funktionen gebraucht jedoch dies funktioniert auch nicht. Als Fehler kommt immer gcc plugin error Objektfile is not found on expected location Pfad\Programm-elf. Wo liegt mein Fehler ?????????? Danke schon mal TOM
Hallo, Ich habe nun mal ein Testprojekt gemacht das ich linke konnte. Kann jemand mir sagen ob dies richtig ist wie ich es mache!!!! Sorry Anfänger. main.c
1 | #include <avr/io.h> |
2 | #include <avr/iom128.h> |
3 | #include <avr/ex_Funktionen.h> |
4 | |
5 | unsigned char i,r; |
6 | |
7 | int main(void) |
8 | {
|
9 | |
10 | for(;;) |
11 | {
|
12 | r = test(); |
13 | }
|
14 | return 0; |
15 | }
|
Funktion.c
1 | #include <Main.h> |
2 | unsigned char test(void) |
3 | {
|
4 | i= i+r; |
5 | i++; |
6 | }
|
Main.h
1 | extren unsigned char i,r; |
ex_Funktionen.h
1 | unsigned char test(void) |
Eventuell muss die Deklaration von test noch mit extern erweitern. Danke schon mal. TOM
Hallo, ich versteh es einfach nicht. Wenn ich das Projekt mache wie oben ist alles OK. Addiere ich nun eine zweite Datei zu Source Files(in Summe 3,Main,Func1,Func1). Deklarier diese auch in ex_Funktionen.h und rufe sie aus Main.c auf kommt Objektfile not found ...... Wenn ich die zweite Funktion in das *.c file der ersten kopiere und das *.c file der zweiten komplett auskommentiere ist der Fehler weg. Hatte schon mal jemand ein ähnliches Problem eventuell ein Bug von AVR Studio??? Gruss TOM
Hallo Programmierer; es kann doch nicht sein, dass Ihr alle ohne Headerdateien arbeitet. Also kommt schon gebt Euch einen Ruck und helft mir, habe echt keine Ahnung an was es liegt das es nicht klappt. ZU den *.c Dateien diese liegen alle im gleichen Ordner, die Headerdateien im Ordner WinAVR...\avr\include\avr\*.h Nun addiere ich alle drei *.c dateien in den Ordner SourceFiles von AVR Studio. Drücke ich nun F7 (Build active Configuration) kommt der Fehler gcc plug-in: Error: Objektfile not found on the expected location C:\Pfad der *.c Files\default\Projekt.elf Lösche ich nun die Funktion2.c aus den SourceFiles Ordner von AVR Studio und schreibe die Funktion in Funktion1.c speichere alles. Drücke ich nun F7 (Build active Configuration) ist alles OK Build succeeded with 0 warnings. Kann mir das jemand erklären an was es liegt oder was ich falsch mache eventuell muss ich auch noch etwas bei AVR Studio einstellen. Hier mal noch die C und H-Files Ich bin verzweifelt habe schon alles versucht doch immer das gleich Fehler Fehler und wieder Fehler. In meinem eigentlichen Projekt mochte ich die Funktionen eben auslagern um eine bessere Ubersucht in Main zu erreichen. Habe vorher mit Keil programmiert und dort alle Funktionen in Bibliotheken gepackt und auch Hedaerfiles erstellt und dort hat es geklappt und bei AVR Studio nicht. Muss ich eventuell nit der Funktionen*.c noch etwas machen bevor ich sie ins Main.c einbinden kann? BitteBitte helft mir. Gruß und Danke TOM main.c
1 | #include <avr/io.h> |
2 | #include <avr/iom128.h> |
3 | #include <avr/ex_Funktionen.h> |
4 | |
5 | unsigned char i,r,t,z; |
6 | unsigned char Data[10]; |
7 | int main(void) |
8 | {
|
9 | |
10 | for(;;) |
11 | {
|
12 | test1(); |
13 | t = Data[0]; |
14 | test2(); |
15 | z = Data[1]; |
16 | r++; |
17 | Data[2] = i; |
18 | Data[3] = r; |
19 | }
|
20 | return 0; |
21 | }
|
Funktion1.c
1 | #include <Main.h> |
2 | void test1(void) |
3 | {
|
4 | i= i+r; |
5 | Data[0]=i; |
6 | i++; |
7 | }
|
Funktion2.c
1 | #include <Main.h> |
2 | void test2(void) |
3 | {
|
4 | i= i+r; |
5 | Data[1]=i; |
6 | i++; |
7 | }
|
Main.h
1 | extern unsigned char i,r,t,z; |
2 | extern unsigned char Data[10]; |
ex_Funktionen.h
1 | void test1(void); |
2 | void test2(void); |
Hallo Leute, kommt schon gebt mir einen Tipp wie es funktioniert. Ok Funktion aus einer Ecternen Datei aufrufen ist etwas blöd geschrieben do leider kann ich es nicht mehr ändern. Ich möchtre einfach nur die Funktionen in seperate *.c Dateien schreiben und diese dann über H-Files wieder einbinden. Ich versuche schon seit gestern dies hinzubekommen und meine Nerven liegen so langsam blank. Lasst mich nicht mit mir selbst kommunizieren. DANKE TOM
Schnapp dir das nächstbeste C-Buch (notfalls geht auch das http://www.galileocomputing.de/openbook/c_von_a_bis_z/index.htm ) und schau nach, wie #includes funktionieren und wie man mehrere .c-Files compiliert :( Jörg
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.