PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler beim Compilen



noNeed 4 aNick
03.01.2005, 19:00
Hi zusammen,
ich hab gerad mein erstes Programm geschrieben und auf meine AVR geladen - Eine LED an Port B einschalten *stolz* ;)

Nun hab ich das Programm erweitert auf folgenden unglaublich komplizierten Code:


#include <inttypes.h>
#include <avr/io.h>

int main (void)
{
uint16_t i;
DDRB = 0xFF;

while(1)
{
for (i = 0; i < 1000; i++)
{
asm volatile("nop");
}
PORTB = 0x00;


for (i = 0; i < 1000; i++)
{
asm volatile("nop");
}
PORTB = 0xFF;
}
}


Wenn ich nun die HexFile erzeugen will, meint der:


HelloWorld.c:4 *** missing separator. Stop.


Zeile 4 ist aber int main (void). Wie kann das sein, denn diese und die Zeilen darüber hab ich nichteinmal editiert?!

Thanx in Advance
Alex

recycle
03.01.2005, 19:17
Ist die folgende Zeile denn so richtig?

uint16_t i;

oder gehört da eventuell ein "=" oder irgendein Operator dazwischen?

Ich habe leider keine Ahnung von C und kann nur daher nur raten

bluebrother
03.01.2005, 19:17
hmm, ich kann so keinen Fehler sehen. Probier doch mal ein "make clean", vielleicht fliegt noch irgendwas unaufgeräumtes rum was Ärger macht. Hatte ich zumindest schon ...

bluebrother
03.01.2005, 19:19
@recycle:

uint16_t i;
ist so richtig. Dabei wird die Variable i vom Typ uint16_t deklariert. Alternative wäre

uint16_t i=0;
wenn du gleich einen Startwert mitgeben willst. Dann tutst du die Variable deklarieren und gleichzeitig definieren.

recycle
03.01.2005, 19:36
@recycle:

uint16_t i;

ist so richtig. Dabei wird die Variable i vom Typ uint16_t deklariert.


OK, Deklaration von Variablen sagt mir schon etwas, ich wusste nur nicht, dass uint16_t ein Datentyp ist.
War wie gesagt auch nur geraten.

noNeed 4 aNick
03.01.2005, 19:40
lol ich hab's.

Ich hab make -f HelloWorld.c statt make -f HelloWorld.mak.

Ich n00b - *duck* nicht schlagen xD

bluebrother
03.01.2005, 20:14
na prima :)
Wenn die Datei "Makefile" heißt findet make die automagisch. Dann reicht ein "make all" oder einfach "make". Find ich persönlich deutlich schöner weil eh jedes Projekt ein neues Verzeichnis bekommt.

noNeed 4 aNick
03.01.2005, 20:16
hmm cool - sogar ich lern noch dazu ;)

Ich leg auch immer neue Ordner für jedes Projekt an, dann werd ich mir das demnächst angewöhnen...