Forum: Compiler & IDEs include - oder bin ich blöd?


von Pet (Gast)


Lesenswert?

Ich habe eigentlich kein Problem mit C und include. Aber jetzt sitze ich 
seit einer Stunde hier und glaube langsam, ich bin über Weihnachten 
verblödet.

Ich habe ein Hauptprogramm in einer Datei und will in einer extra Datei 
was Auslagern.
Also
haupt.c:
1
#include "test.h"
2
int main (void)
3
{
4
 test();
5
 ...
6
}
test.h:
1
void test(void);
test.c:
1
#include "test.h"
2
3
void test(void)
4
{
5
}

Im makefile wird haupt.c und test.c compiliert.
Das sollte doch funktionieren? Es gibt keine Fehlermeldungen aber mit 
dem Aufruf von test(); bleibt das Programm hängen.
Grübel.

von Peter II (Gast)


Lesenswert?

Pet schrieb:
> Es gibt keine Fehlermeldungen aber mit
> dem Aufruf von test(); bleibt das Programm hängen.

sollte aber funktionieren. Das Problem wird irgendwo anders liegen. 
Mache doch mal eine Ausgabe in Test rein.

von (prx) A. K. (prx)


Lesenswert?

AVR, und zwar Mega128 mit Mega103-Fuse?
Dann steht der Stack im Wald und beim ersten Return hebt er ab.

: Bearbeitet durch User
von last (Gast)


Lesenswert?

heißt dein executable "test"?
wenn ja --> Aufruf mit ./test

von Johannes M. (johannesm)


Lesenswert?

Die while(1) Schleife vergessen? ;)

von Pet (Gast)


Lesenswert?

A. K. schrieb:
> AVR, und zwar Mega128 mit Mega103-Fuse?

Leider nein.

Johannes M. schrieb:
> Die while(1) Schleife vergessen? ;)

Auch nein.

Peter II schrieb:
> Mache doch mal eine Ausgabe in Test rein.

In test lasse ich eine LED blinken. Wenn ich das ohne den Aufruf von 
test mache, dann klappt's. Es klappt auch in test. Aber er kommt aus 
test nicht zurück.

von Pet (Gast)


Lesenswert?

BTW: Es ist ein mega328. lfuse=E7, hfuse=DF, 16MHz Quarz

von (prx) A. K. (prx)


Lesenswert?

Ist das oben ein Originalprogramm, oder bloss ein Rumpfprogramm zum 
selbst ausmalen? Denn wenn es das nicht sein kann, was man sieht, dann 
ist es das, was man nicht sieht.

Bring mal ein auf das Minimum reduziertes echtes Programm. Komplett.

: Bearbeitet durch User
von Pet (Gast)


Lesenswert?

ARGH!!!!!!!!!!!!

Danke!
Ich habe mich vertan, es ist ein mega168. Ich will eigentlich einen 
328er nutzen, habe aber derzeit keinen und deshalb erst einmal einen 
168er reingesteckt. Aber natürlich im makefile 328 angegeben.
So viel also zum Thema Weihnatsverdummung. Wird Zeit, sich 
Silvestermäßig zu besaufen.

Allen einen guten Rutsch!

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.