Kann mir einer der C-Profis hier kal Helfen

uwe-ftechnik

Mitglied
31. Jan. 2009
71
1
8
Bekum
Sprachen
Kann mir einer der C-Profis hier mal Helfen

:vollkommenauf: Habe versucht ein kleines Programm für den ATMEGA8 auf einem ATMEGA164 zum laufen zu bringen, leider habe ich immer folgende fehlermeldung :

Code:
   Build started 18.2.2009 at 15:19:29

   avr-gcc -mmcu=atmega164p -Wl,-Map=test5-blinkdemo.map test5-blinkdemo.o     -o test5-blinkdemo.elf

   c:/atmel/winavr-20081205/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr5/crtm164p.o:(.init9+0x0): 
   undefined reference to `main'

   make: *** [test5-blinkdemo.elf] Error 1

   Build failed with 1 errors and 0 warnings...

Hier das Programm:

Kann da mal jemand etwas zu sagen????:hmpf:

Code:
/*	
 *	Blinks the led with a speed Hz using a simple delay loop.
 *	Compile with AVRStudio+WinAVR
 */

#define	__AVR_ATmega164	

#include "io.h"

void Initialize(void)
{
	PORTB = 0x0;
	PORTC = 1<<5;	/* turn the LED off */
	PORTD = 0x0;

	DDRB = 0x0;
	DDRC = 1<<5;	/* PC5 as output - the LED is there */
	DDRD = 0x0;

}

/*	state = 0 -> Led Off
 *	state = 1 -> Led On
 *	state !=[0,1] -> Led Toggle 
 */
void LedSet(unsigned char state)
{
	switch (state)
	{
		case 0:
			PORTC &= ~(1<<5);
			break;
		case 1:
			PORTC |= 1<<5;
			break;
		default:
			if (PORTC & 1<<5) 
				PORTC &= ~(1<<5);
			else
				PORTC |= 1<<5;
	}
	
}


void main(void)
{
	int i;

	Initialize();

	while (1)
	{
		LedSet(0);
		for (i=60000;i;i--);
		LedSet(1);
		for (i=60000;i;i--);
	}
}

Wenn jemand Zeit und Lust hat !!
Danke schon mal !!!!!
 
Ich bekomme bei deinem Code irgendwie nicht die selben Fehlermeldungen wie du.


Wieso schreibst du statt
Code:
#define	__AVR_ATmega164	

#include "io.h"
nicht einfach nur:
Code:
#include "AVR/io.h"

Dann lässt es sich auch Kompilieren.
 
Hallo zusammen,

es ist wahrscheinlich ein Problem im Makefile, main wird nicht gefunden. Kannst du das Makefile an einen Beitrag anhängen.

Wie Nomis schon erwähnt hat, solltest du io.h aus dem Verzeichnis avr einbinden.

Noch ein Hinweis: void main(void) erzeugt ein Warning, besser int main(void) verwenden und am Ende von main return 0;



CodeBox C

#include <avr/io.h>

int main(void)
{
// ...
while(1)
{};

return 0;
}


Grüße,
Dirk
 
Danke Nomis3000 & Dirk

Habe die Änderungen so eingefügt wie gesagt, leider immer noch Fehler aber wie gesagt liegt das am MAKEFILE ????.

Code:
Build started 18.2.2009 at 21:11:43
avr-gcc -mmcu=atmega164p -Wl,-Map=test5-blinkdemo.map test5-blinkdemo.o     -o test5-blinkdemo.elf
c:/atmel/winavr-20081205/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr5/crtm164p.o:(.init9+0x0): undefined reference to `main'
make: *** [test5-blinkdemo.elf] Error 1
Build failed with 1 errors and 0 warnings...
:fie:

Habe aber warscheinlich eine zu grosse Wiessenslücke Betreffend MAKEFILE ich hatte für ATMEGA8 auch kein MAKEFILE und es Funktionierte auch ????
Woh liegt da mein Fehler????

Vielen DANK für die Information!!!!
 
Das in dem Makefile der Pfad zum Sourcecode fehlt hab ich mir auch schon gedacht.

Aber ich schätze mal du arbeitest mit dem AVR-Studio, welches das eben meist von alleine macht.

Hast du schon mal ein komplett neues Projekt angelegt?

Wenn du die Datei nämlich öffnest ohne sie im Projekt angegeben zu haben, kommt sie nicht ins Makefile(genau deine Fehlermeldung).
 
Hallo zusammen,
Wenn du die Datei nämlich öffnest ohne sie im Projekt angegeben zu haben, kommt sie nicht ins Makefile(genau deine Fehlermeldung).

hmmm, ja ich vermute auch, daß es der Grund für die Fehlermeldung ist :)

Dirk
 
Danke Dirk & Nomis3000

Das war mein Fehler jetzt Funktioniert das auch, hatte gedacht das ich geschreiben habe mit AVR-Sutio und GCC :egg: war aber leider nicht so habe da mal wieder geschlafen tut mir leid !!!!!!
Bedanke mich aber sehr für die Hilfe!!!!!!!:date:
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)