PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler beim erstellen der .hex datei



ezo2k3
10.11.2008, 21:08
hi,
ich hab ein problem wo ich bis jetzt keine lösung zu gefunden habe. Ich muss dazu sagen das ich ein absoluter anfänger im umgang mit c programmieren bin . also vorweg : habe schreibschutz rausgenommen und neuestes WinAVR installiert ..

das problem :
wenn ich den standartcode der test.c (leerer inhalt) von der Asuro CD unverändert lasse und make drücke, kommt kein fehler ... wenn ich den ändere und speicher .. dannn auf make drücke kommt folgendes :

> "C:\ASURO_src\FirstTry\Test-all.bat"

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=asuro.lst asuro.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > asuro.d; \
[ -s asuro.d ] || rm -f asuro.d
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 (WinAVR 20080610) 4.3.0
Copyright (C) 2008 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
In file included from asuro.h:34,
from test.c:1:
c:/winavr-20080610/lib/gcc/../../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>."
test.c: In function 'main':
test.c:5: error: expected ';' before 'MotorDir'
test.c:9: error: stray '\223' in program
test.c:9: error: 'Alles' undeclared (first use in this function)
test.c:9: error: (Each undeclared identifier is reported only once
test.c:9: error: for each function it appears in.)
test.c:9: error: expected ')' before 'OK'
test.c:9: error: stray '\' in program
test.c:9: error: stray '\224' in program
test.c:9: error: too few arguments to function 'SerWrite'
test.c:14: error: stray '\223' in program
test.c:14: error: 'Aua' undeclared (first use in this function)
test.c:14: error: expected ')' before '!' token
test.c:14: error: stray '\' in program
test.c:14: error: stray '\224' in program
test.c:14: error: too few arguments to function 'SerWrite'
make: *** [test.o] Error 1

> Process Exit Code: 2
> Time Taken: 00:00

diesem fehler liegt ein per copy & paste kopierter Code vom handbuch zugrunde .. von daher kein programmier fehler .. :

#include "asuro.h"

int main(void) {
Init ()
MotorDir(FWD,FWD); // Beide Motoren auf vorwärts
MotorSpeed(120,120); // Beide Motoren etwa halbe Kraft voraus
StatusLED(GREEN); // Status-Leuchtdiode auf grün schalten
while (PollSwitch()==0) { // Solange keine Kollision erfolgte...
SerWrite(“Alles OK!\n”,10); // ... Euphorie verbreiten
}
MotorSpeed(0,0); // Kollision! Sofort anhalten!
StatusLED(RED); // Statusleuchtdiode rot schalten
while (1) {
SerWrite(“Aua!\n”,5); // und weinen!
}
}


bitte helft mir

linux_80
10.11.2008, 21:39
Hi,
mit dem:

test.c:5: error: expected ';' before 'MotorDir'
will er mitteilen, daß vor dem MotorDir ein ; gehört, man könnte auch sagen eine Zeile zuvor geht der ab.

ezo2k3
10.11.2008, 21:43
hab nen ; mal davor gesetzt ... klappt nicht .. gleicher fehler

radbruch
10.11.2008, 21:49
In SerWrite (Zeile 9 und 14) müssen die Zeichenketten zwischen normalen Anführungszeichen (auf der 2-Taste) stehen. Also nicht

SerWrite(“Alles OK!\n”,10); // ... Euphorie verbreiten

sondern

SerWrite("Alles OK!\n",10); // ... Euphorie verbreiten

In Zeile 4 fehlt das ;

Init();

[Edit]
In der Datei asuro.h muss folgendes geändert werden:

#include <avr/io.h>
#include <avr/interrupt.h>
//#include <avr/signal.h>
#include <stdlib.h>

signal.h ist veraltet und sollte durch interrupt.h ersetzt werden.

ezo2k3
10.11.2008, 22:37
vielen dank für die schnelle und kompetente antwort !!!!

es klappt unglaublich !!!

dann is ja nen fehler im Asuro handbuch !!!

phoefi
21.11.2008, 23:41
da sind einige drinnen