Hallo m.a.r.v.i.n,
danke, jetzt wird das auch uns klar was da fehlt...und wir versuchen das
mit den Testfunktionen.
Gruß volpe
hallo volpe,
nagut ich wollte sichergehen, daß wir von der selben Datei sprechen
Natürlich verlangt keiner, daß man als Experte geboren wird, aber C auf einem µC zu erlernen ist nicht der beste Weg, Du hast wohl Linux drauf, wie ich im Topic gelesen habe, da ist normal GCC drauf, und man kann wunderbar damit üben
Aber zum Thema zurück, wenn Du die Funktionen nutzen willst, die in test.c drin sind, mußt Du folgenden Weg gehen:
erstelle Dir einen neuen Ordner von mir aus test
kopiere folgende Dateien dort hin:
test.c
test.h
asuro.c
asuro.h
Makefile
Erstelle in Diesem Ordner eine neue Datei, z.B. main.c die etwa so aussehen sollte/könnte:
Ändere Makefile ab, etwa so wie hier:Code:#include"asuro.h" #include"test.h" int main(void){ Init(); SerialTest(); while(1){ } return 0 ; }
wenn die datei main heißtCode:... # Target file name (without extension). TARGET = main ...
nur hier wird von test.c gesprochen !Code:... # If there is more than one source file, append them above, or adjust and # uncomment the following: SRC += asuro.c test.c
Ich habe es gerade so gemacht, es läßt sich prima kompilieren...
Ich hoffe, daß ich Dir helfen konnte.
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Hallo m.a.r.v.i.n,
danke, jetzt wird das auch uns klar was da fehlt...und wir versuchen das
mit den Testfunktionen.
Gruß volpe
Hallo volpe,
mein Vorschalg wird zwar auch funktionieren, aber die Lösung von Sebastian ist der bessere Weg. C-Dateien includen ist schlechter Programmierstil und sollte deshalb vermieden werden. Der saubere Weg geht nur über die Änderung des Makefiles.
Gruß m.a.r.v.in
Hallo Sebastian,
wir melden uns wieder und werden Deinen Weg auch übernehmen.
Besten Dank für die schnelle Hilfe in diesem Forum...findet man selten
aber es macht viel Spass den Jungs was zu lernen.
Gru? volpe
Hallo Sebastian,
danke für den vorgeschlagenen Ablauf.
Die notwendigen Files test.c und test.h die wir benötigen sind bei
uns im Linux ~/ASURO/ASURO_src/SelfTest/ als Test.c und Test.h
vorhanden
Ich denke wir sollen die Dateien auch so ansprechen bzw kopieren...
Nochmals besten Dank für die schnelle Hilfe
Gruß volpe
Hall Sebastian,
danke für Deinen Test-Ablauf.
Um den Ablauf bei mir so zu gestalten habe ich noch Fragen:
Wenn ich in den neuen Ordner test die von Dir genannten Files
kopieren soll finde ich in meinem Ordner:
~/ASURO/ASURO_src/SelfTest
Test.c Test.h asuro.c asuro.h und Makefile
also kein test.c und test.h
Soll ich diese Dateien nun in den neuen Ordner test kopieren ?
Nächste Frage bezgl. Änderung Makefile
Auszug von meiner Makefile:
Soll ich das so stehen lassenCode:# If there is more than one source file, append them above, or adjust and # uncomment the following: SRC += asuro.c \ test.c SelfTest.c \ Demo.c LineDemo.c RechteckDemo.c PCDemo.c IRDemo.c
Mit dem test.c und test.h blicke ich noch nicht durch...
Kannst Du mich nochmals aufklären...
P:S: Habe mal so versucht zu kompilieren:
[code]make: *** Keine Regel vorhanden, um das Target »main.hex«,
benötigt von »all«, zu erstellen. Schluss.
Hier noch meine File main.c:
Gruß volpeCode:#include"asuro.h" #include"Test.h" int main(void){ Init(); SerialTest(); while(1){ } return 0; }
Hallo volpe,
na gut, wenn sie bei Dir mit großem T anfangen, mußt Du sie auch so ansprechen, das ist richtig.
Ja.Soll ich diese Dateien nun in den neuen Ordner test kopieren ?
Nächste Frage bezgl. Änderung Makefile
Auszug von meiner Makefile:
Code: [View More of this Code] [View Even More of this Code] [View Less of this Code] [Select All of this Code]
# If there is more than one source file, append them above, or adjust and
# uncomment the following:
SRC += asuro.c \
test.c SelfTest.c \
Demo.c LineDemo.c RechteckDemo.c PCDemo.c IRDemo.c
Soll ich das so stehen lassen
Mit dem test.c und test.h blicke ich noch nicht durch...
Kannst Du mich nochmals aufklären...
komischerweise steht in Deinem Makefile test.c kleingeschrieben ???
aber die ganzen Selftest... Demo.... Linedemo... usw müßen ja weg, die brauchst Du ja nicht.
Zum Makefile ist folgender Artikel ganz gut http://www.mikrocontroller.net/artic...urs:_Makefiles
Scha Dir mal diesen Artikel mal an, ich habe dort ein Makefile gepostet, versuch mal den zu verwenden.
Lass mal wissen ob es geklappt hat.
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Hallo Sebastian,
mit Deinem Beispiel für das Makefile hat es geklappt =D>
Wir haben Dein Makefile mit denen von ASURO verglichen und haben auch
die Ursache, warum es nicht zu kompelieren ist, gefunden.
Der Grund liegt in der Anweisung von # Define directories,if needed
Auszug der ASURO Makefiles
[/list]Makefile unter Linux ~/ASURO/ASURO_src/SelfTest
Auszug von Makefile:
# Define directories, if needed.
DIRAVR = D:/Atmel/winavr
DIRAVRBIN = $(DIRAVR)/bin
DIRAVRUTILS = $(DIRAVR)/utils/bin
DIRINC = .
DIRLIB = $(DIRAVR)/avr/lib
makefile unter Linux ~/ASURO/ASURO_src/FirstTry
Auszug von makefile:
# Define directories, if needed.
DIRAVR = c:/winavr
DIRAVRBIN = $(DIRAVR)/bin
DIRAVRUTILS = $(DIRAVR)/utils/bin
DIRINC = .
DIRLIB = $(DIRAVR)/avr/lib
Wenn man alle Files auskommentiert klappt auch das make
mit der ASURO Makefile....vorausgesetzt man hat nur Linux.
In der Orginal Makefile von ASURO ist ausserdem noch ein
Fehler unter :
SRC += asuro.c \
test.c SelfTest.c \
Hier test.c auf grosses T ändern (Test.c)
Unter ~/ASURO/ASURO_src/SelfTest/ ist auch in der File
SelfTest.c bei #include "test.h" ein grosses T notwendig.
So das wars vorerst, wir kommen langssam weiter.
Nochmals besten Dank für Deine Hilfe
Gruß volpe
....Habe meine 2 Enkel (13/14 Jahre alt nun endgültig vom Windoof zu
Linux gebracht und hoffe sie haben nun Spass mit dem ASURO Roboter....
Das werden sie mit Linux auf keine fall haben.
Wenn sie schon das Makefile von Hand erstellen müssen, das geht nicht gut.
Der Code vom Asuro ist noch mit einer alten Winavr-c-version erstellt worden. Wenn die Kinder darauf aufbauen wollen, stecken sie jetzt schon in einer Sackgasse.
Es stehen dort noch Befehle drin, die man lange rausgenommen hat und nicht "c-würdig" waren für den AVR. Sämtliche Timer und Interrrupt usw. sind ca 180 , haben andere Namen bekommen, solche Namen die auch auf der WELT Iin der AVR-Serie einheitlich sind.
Sinnvoll wäre es , die neueste Winavr-c-Version von April 2006 zu installieren und den ganzen Code anpassen. Ist viel arbeit, lohnt sich aber, wenn man von anderen Fragen beantwortet haben möchte.
Wenn es jetzt schon soviel Probleme mit der Software gibt und der Asuro noch keinen pips gesagt hat, ist das Zeitverhältnis zum Asuro zu testen überzogen und das Sytem was benutzt wird nicht Fördernd für die eigentliche Aufgabe : Der Ausuro soll eine Linie langfahren.
Aussage und Stil kommen mir doch irgendwie bekannt vor!?Zitat von robby-fant
Lesezeichen