Forum: Mikrocontroller und Digitale Elektronik AVR Studio hängt sich auf


von steve (Gast)


Lesenswert?

Hallo Leute,

ich habe folgendes Problem.

Ich möchte paar Funktionen aus main.c auslagern.

ich habe dazu am Anfang des Programms #include <Code.c> hingeschriben.

Sobald ich aber auf "build" drücke, hängt sich AVR Studio ab.

Könnt Ihr mir helfen?

Gruß Steve

von Chris (Gast)


Lesenswert?

Generell included man C Files nicht. Man Included nur Header.

Wenn du das C-File brauchst, lade es in dein Projekt und Include die 
Headerfile zu diesen C-Files.

Außerdem muss es bei eignenen Dateien in Hochkommas stehen, nicht 
zwischen < >.

< > bezieht sich auf Dateien aus der Library.
1
#include <utils/delay.h>  // Bindet die Delay.h aus der Library ein
2
#include "myHeaders.h" // Bindet eigene Headerfile ein, die im Projektverzeichnis liegt

Les doch mal diesen Artikel durch:
http://www.mikrocontroller.net/articles/Include-Files_(C)

Gruß
Chris

von steve (Gast)


Lesenswert?

Also jetzt hängt sich AVR Studio nicht mehr aus, aber ich bekomme 
folgende Fehler heraus.

In function "main" ..... undefined reference to "code.c"

Folgendes habe ich in "main.c" stehen:

#include "code.h"
int main(void)
{
code();
}

Folgendes habe ich in "code.h" stehen:

#ifndef SPS_h
#define SPS_h

extern void SPS_Code (void);

#endif

Folgendes habe ich in "code.c" stehen:

#include "code.h"

void SPS_Code (void)
{
...........
}


was mache ich falsch?

von MeinerEiner (Gast)


Lesenswert?

Kennt AVR-Studio auch die Datei code.c?

von steve (Gast)


Lesenswert?

wo muss man diese Datei angeben?

von MeinerEiner (Gast)


Lesenswert?

hinzufügen, wo die main.c auch ist.

von steve (Gast)


Lesenswert?

also bei "source file" ist er drin

von ozo (Gast)


Lesenswert?

Wie schaut denn der Inhalt von code.h aus?

von ozo (Gast)


Lesenswert?

Upps, sorry. Überlesen. Aber eine Funktion namens code() gibts doch 
garnicht - und die ruft du von main()...

von steve (Gast)


Lesenswert?

doch in main rufe ich die Funktion "code" auf! Oder versteh ich was 
falsch?

Folgendes habe ich in "main.c" stehen:

#include "code.h"
int main(void)
{
code();
}

von steve (Gast)


Lesenswert?

muss man vieleicht irgend was im Makefile beachten?

help!

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Deine funktion heißt SPS_code() und nicht code()!
Stand aber schon etwas weiter oben der Hinweis...

von Gast (Gast)


Lesenswert?

Es gibt keine Funktion code() zum aufrufen.

von steve (Gast)


Lesenswert?

ach das war mit diesem Beitrag gemeint!!!!
ICh habe mich oben verschrieben. So steht es bei mir momentan.

In function "main" ..... undefined reference to "code.c"

Folgendes habe ich in "main.c" stehen:

#include "code.h"
int main(void)
{
SPS_code();
}

Folgendes habe ich in "code.h" stehen:

extern void SPS_code (void);


Folgendes habe ich in "code.c" stehen:

#include "code.h"

void SPS_code (void)
{
...........
}

klappt aber trotzdem nicht

von Gast (Gast)


Lesenswert?

Code bitte mit copy/paste und nicht abschreiben. Da schleichen sind doch 
nur noch mehr Fehler ein.
Ich würde es mal ohne extern versuchen, warum hast du das denn dort 
stehen?

von steve (Gast)


Lesenswert?

ich habe es bei aus einem Beispiel abgeschriben.

von steve (Gast)


Lesenswert?

extern habe ich jetzt weg.
klappt leider auch nicht.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

wenn du ein externes makefile verwendest mußt du dort die code.c 
natürlich eintragen.

von steve (Gast)


Lesenswert?

und wo genau?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

MeinerEiner wrote:
> hinzufügen, wo die main.c auch ist.
s.o.
Etwas Eigeninitiative und ein gewisses Maß an Experimentierfreude gehört 
zum Hobby µC aber auch dazu!
Also einfach mal den Kopf einschalten und selber was ausprobieren.

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.