PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : WinAVR Compilierfehler, alle Programme, Parse error



Herbert A.
26.02.2010, 18:32
Hallo ASUROfans,

im Programmers Notepad erscheint nach dem Compilieren immer
test.c:4: error: parse error before ";" token.
Das passiert bei allen Programmen, auch bei den Beispielen von der CD.

Das Problen trat erst nach einigen Compilierungen auf.

Weiß jemand, was ich da tun kann?

:?:

Valen
26.02.2010, 22:43
Eben wen es ein bekanntes program ist sollte man die code posten. Und lieber auch den ganze compiler report. Wir haben keine idee von welches program das ist. Oder hinter welche function oder variabele die ";" steht. Oder was im zeile 4 steht. Ich vermute du hat vielleicht das selbe error bekommen, aber mit verschiedene zeile nummern. Die test.c von FirstTry ist ganz anders wie test.c von den SelfTest.

radbruch
26.02.2010, 23:01
Hallo

Mal ein Schuss ins Blaue:

Bei den Demoprogrammen auf der CD werden häufig die falschen Anführungszeichen verwendet:

#include ``asuro.h``

ist falsch, es müssen die Gänsefüsschen (Umschalt+2) verwendet werden:

#include "asuro.h"

Gruß

mic

Herbert A.
27.02.2010, 13:26
Hallo Asuro-Fans,

vielen Dank für Eure Tips, ich habe sie angeschaut und schicke Euch hier mal den kompletten Text aus dem Programmers Notepad.

#include "asuro.h"
int main(void){
MotorDir(FWD,FWD);
MotorSpeed(100;100)
while(1)}

Das Programm sieht ganz o.k. aus, die Anführungszeichen sind die richtigen.
Dann kommt die folgende Meldung:

C:\ASURO_src\FirstTry>make all
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 3.3.1
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
test.c: In function `main':
test.c:4: error: parse error before ';' token
make: *** [test.o] Error 1

> Process Exit Code: 2[/color][/color]


Wisst Ihr jetzt, was hier falschläuft?
Vielen Dank für Eure Mühe.

Gruß
Herbert A.

radbruch
27.02.2010, 13:34
...
MotorSpeed(100,100);
while(1);
return 0;
}

Besser?

Valen
27.02.2010, 13:35
#include "asuro.h"
int main(void){
MotorDir(FWD,FWD);
MotorSpeed(100;100)
while(1)}

Das Programm sieht ganz o.k. aus, die Anführungszeichen sind die richtigen.
Dann kommt die folgende Meldung:


test.c: In function `main':
test.c:4 : error: parse error before ';' token
make: *** [test.o] Error 1[/color]Es sitzt doch in die nähe von den 4e zeile. Es fehlt eine ; am ende von den Motorspeed. Und auch einer am ende von den while(1).

Herbert A.
27.02.2010, 19:29
Hallo Ihr Beiden,

danke für Eure schnelle Antwort,
leider bleibt die Fehlermeldung dieselbe,
auch nach beiden vorgeschlagenen Veränderungen

??? was jetzt ???

Danke im Voraus
Gruß
Herbert A.

](*,)

radbruch
27.02.2010, 19:32
Was jetzt? Aktuellen Code zeigen damit wir es auch ausprobieren können.
(Das ; zwischen 100 und 100 hast du sicher auch gesehen, oder?)

Valen
27.02.2010, 19:39
Deine (erste) fehler meldung bekommst du vermutlich wegen den punkt-komma im MotorSpeed commando. Das muss ein komma sein wie radbruch schon angegeben hat (und ich vergessen habe zu melden). Vielleicht hast du es ubersehen. Wenn du es nicht gespeichert hat kommt das naturlich auch wieder zurück.

Arexx-Henk
28.02.2010, 15:02
Hallo,

vielleicht mal so?



#include "asuro.h"

int main(void){

Init();

MotorDir(FWD,FWD);

MotorSpeed(100,100);

while(1);

}


Gruss

Arexx-Henk

Herbert A.
23.03.2010, 13:49
Hallo ,

nach Euren Antworten habe ich jetzt geschrieben:



#include "asuro.h"

int main(void){

Init();

MotorDir(FWD,FWD);

MotorSpeed(100,100);

while(1);

}


und dann kommt diese Fehlermedung:



C:\ASURO_src\FirstTry>make all
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 3.3.1
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
test.c: In function `main':
test.c:4: error: parse error before ';' token
make: *** [test.o] Error 1

> Process Exit Code: 2


Da stimmt doch irgendwas grundsätzlich nicht, oder?
Ist vielleicht der Compiler defekt?

Ich freue mich auf Eure Antworten! O:)

Euer Herbert

radbruch
23.03.2010, 14:01
Hallo

Also ich kann das fehlerfrei übersetzen. Hast du gespeichert vor dem Kompilieren?

Zur weiteren Eingrenzung des Fehlers könntest du die Zeilen einzeln auskommentieren (= ein // davor setzen) oder einen zusätzlichen Befehl zwischen die Zeilen einfügen ( z.B StatusLED(RED); ) um zu testen, wann sich die Zeilennummer in der Fehlermeldung nicht mehr ändert. Um den Kompiler zu überprüfen könntest du ein Minimalprogramm versuchen:


#include "asuro.h"

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

Gruß

mic

Valen
23.03.2010, 16:57
Ist vielleicht der Compiler defekt?Alt ist es schon! Heute zu tage gibt es 4.3.3 oder so etwas. Es enthalt sicher einiger bugfixes. Aber deines ist ein ganz grundsetzliches program. Wenn sollches eines einfachen programm nicht compilieren wurde mit den winavr version von den asuro-cdrom, wurde ganz vielen daruber schon lärme gemacht haben. Und Arexx wurde schnel einer neue cdrom mitliefern.

Herbert A.
24.03.2010, 13:40
Vielen Dank für die schnelle Antwort.
Ich habe das ganz einfache Programm ausgeführt und bekomme keine Fehlermeldung mehr. (siehe unten)



C:\ASURO_src\FirstTry>make all
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
[ -s test.d ] || rm -f test.d
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 3.3.1
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
test.c:13:2: warning: no newline at end of file
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c -o asuro.o
avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.o test.o asuro.o --output test.elf -Wl,-Map=test.map,--cref -lm
avr-objcopy -O ihex -R .eeprom test.elf test.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O ihex test.elf test.eep
avr-objdump -h -S test.elf > test.lss
Size after:
test.elf :
section size addr
.text 1524 0
.data 0 8388704
.bss 1 8388704
.noinit 0 8388705
.eeprom 0 8454144
.stab 3144 0
.stabstr 1698 0
Total 6367


Errors: none
-------- end --------

> Process Exit Code: 0




Langsam habe ich wieder Hoffnung, das mein Roboter bald in Aktion treten kann!!

Wie mache ich jetzt am besten weiter? :-k


Grüße
Herbert

Herbert A.
24.03.2010, 16:37
Hallo Leute,

Habe jetzt das Programm von gestern :



#include "asuro.h"

int main(void){

Init();

MotorDir(FWD,FWD);

MotorSpeed(100,100);

while(1);

}



nochmal in den Programmers Notepad gestellt, gespeichert und kompiliert und siehe da: es hat fehlerfrei geklappt.
Vielen Dank für Eure Geduld und Mühe, mir alles zu erklären,
ich hoffe, es klappt weiter so gut

viele Grüße
Herbert
:-b

Herbert A.
24.03.2010, 19:24
Hallli hallo,

jetzt fährt Asuro durch die Gegend,
nochmals vielen Dank für die Unterstützung!

:cheesy:


Gruß
Herbert