funktioniert das kompilieren der demo dateien, die bei der lib dabei waren?
Hallo.
Ich wollte ein paar .c Dateien, die hier im Forum gepostet wurden, testen (Code aus "Ausuro folgt der Linie"). Dazu habe ich einen neuen Ornder erstellt mit
Wenn ich allerdinge compilieren will, erhalte ich zig Fehler, nämlich:Code:28.09.2005 15:51 18.422 asuro.c 04.12.2006 17:47 34 asuro.d 28.09.2005 15:51 14.347 asuro.h 19.12.2005 14:01 7.297 Makefile 06.01.2001 18:08 8 Test-all.bat 06.01.2001 18:08 10 Test-clean.bat 04.12.2006 17:27 1.044 test.c 04.12.2006 17:31 963 test.c.old 04.12.2006 17:47 31 test.d
Kann mir kurz einer sagen, was da faul ist?Code:-------- begin -------- avr-gcc --version avr-gcc (GCC) 3.4.6 Copyright (C) 2006 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 -I../../lib/inc -funsigned-char -funsigne itfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=tes st test.c -o test.o In file included from asuro.h:145, from test.c:2: C:/Programme/ASURO/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "T header file is obsolete. Use <avr/interrupt.h>." test.c: In function `main': test.c:30: error: syntax error before ';' token test.c:24: warning: unused variable `i' test.c: At top level: test.c:32: warning: type defaults to `int' in declaration of `LineData' test.c:32: warning: parameter names (without types) in function declaration test.c:32: error: conflicting types for 'LineData' asuro.h:329: error: previous declaration of 'LineData' was here test.c:32: error: conflicting types for 'LineData' asuro.h:329: error: previous declaration of 'LineData' was here test.c:32: warning: data definition has no type or storage class test.c:33: warning: type defaults to `int' in declaration of `ADOffset' test.c:33: error: initializer element is not constant test.c:33: warning: data definition has no type or storage class test.c:34: warning: type defaults to `int' in declaration of `speedLeft' test.c:34: error: initializer element is not constant test.c:34: warning: data definition has no type or storage class test.c:35: error: syntax error before ';' token ....
Komisch finde ich auch: Wenn ich unter Programmers Notepad IRGEND eine .c Datei öffne, wird bei "make" immer in das Verzeichnis > "C:\Programme\ASURO\ASURO_src\FirstTry\Test-all.bat" gesprungen -- wo wohl offenbar die aller erste Testversion lag?
Idee, woran das liegen könnte?
Danke,
W.R.
funktioniert das kompilieren der demo dateien, die bei der lib dabei waren?
...
ich habe verschiedene c-files, die ohne probleme funktionieren. Einige sind alt und kommen von der CD und andere sind neu und benutzen die Lib 2.6 -- beide liegen in verschiedenen Ordnern und beide laufen. Wenn ich aber ein eigenes Projekt starte (so wie dieses) geht es nicht ... seltsam, oder?
kopiere das verzeichnis "firsttry" von der cd.
überschreibe asuro.c und asuro.h (wenn gewünscht) mit der neuen lib.
ersetze test.c mit deinem programmcode, den du kompilieren willst (NENN IHN AUCH TEST.C)
und dann öffne die konsole, wechsle in das verzeichnis vo dein programmcode liegt und gib "make all" ein.
du kannst alternativ auch auf test-all.bat doppelklicken, aber dann siehst du die ausgabe des compilers nicht.
wenn das nicht geht, dann kontrolliere erstmal den programmcode... syntax error usw klingt echt nach programmfehlern. poste mal den code hier.
Ich habe alles so gemacht aber es bleibt bei den Fehlern.
Der code kommt hier aus dem Forum:
auch zu finden ganz unten auf Seite 1 unter:Code:#include "asuro.h" #define SPEED 0x8F int speedLeft,speedRight; unsigned int lineData[2]; int ADOffset; void LineLeft (void) { speedLeft += 1; if (speedLeft > 0xFE) speedLeft = 0xFF; } void LineRight (void) { speedRight += 1; if (speedRight > 0xFE) speedRight = 0xFF; } int main(void) { int i; unsigned char j; Init(); FrontLED(ON); while(1) (j = 0; j < 0xFF; j++) { LineData(lineData);} LineData(lineData); ADOffset = lineData[0] - lineData[1]; speedLeft = speedRight = SPEED; (;;while(1) { LineData(lineData); i = (lineData[0] - lineData[1]) - ADOffset; if ( i > 4) { StatusLED(GREEN); LineLeft(); } else if ( i < -4) { StatusLED(RED); LineRight(); } else { StatusLED(OFF); speedLeft = speedRight = SPEED; } MotorSpeed(speedLeft,speedRight); } return 0; }
http://<br /> <a href="https://www....inie</a><br />
bekenne mich schuldig, dieser code stammt von nmir
nicht alle codes die hier gepostet werden funktionieren auch.
ich wage es zu behaupten das die meisten sogar nicht fnuktioniern.
und bei dem hab ich halt grad eine kleine sache übersehen gehabt, so das massenweise fehler rauskamen. tja. ich poste halt mal gelegentlich auch code den ich nicht getestet hab
schua mal auf die nächste seite. da steht ein code der funktioniert.
mfg EDH
...
sorry, hab jetzt den code vom ende des threads genommen. muss wohl irgend etwas im clipboard hängen geblieben sein, was da eigentlich nicht mehr stehen sollte. Damit klappt das compilieren jetzt... trotzdem danke!
hm, jetzt hab ich das programm zwar compiliert und geflasht - aber der Linie folgt mein Asuro trotzdem noch nicht. es kommt mir vor, als wäre die Messung der Reflexion entweder zu langsam oder aber der Asuro zu schnell. Mein Parcour ist auf 4 DinA4-Blättern mit einem dicken schwarzen Edding aufgezeichnet. Das müsste er doch schaffen?!?
mhh also bei mir hats funktioniniert
bist du dir sicher, das deine liniensesoren richtig funktioniern?
...
Lesezeichen