Erst mal möchte ich hallo sagen, da ich neu in diesem Forum bin. Kurz zu mir: Bin 19 Jahre, Azubi und wohne in München. Ich hab mir schon seid einiger Zeit in den Kopf gesetzt AVRs zu programmieren und hab gerade damit angefangen. Durch das AVR-GCC Tutorial hab ich schon einiges gelernt jedoch stehe ich am Anfang und komme über einen Punkt nicht weg: Es wird etwas von "Makefiles" geschrieben. Nur hab ich es leider einfach nicht verstanden wie ich dieses Makefile anlegen kann und wozu das wirklich gut ist. Nur habe ich gemerkt das ich ohne dem Makefile meinen Code nicht zum laufen bringe, wenn ich am Anfang "#include <avr/io.h>" stehen habe. Deshalb habe ich dann wie im Tutorial beschrieben einfach "#include <avr/iom8.h>" geschrieben, wobei mir das AVR Studio wenn ich auf "Project -> Build" klicke schreibt "Cannot find include file..." Was mache ich falsch? Im Moment habe ich noch kein IC angeschlossen da mein Programmierboard (STK200) vorraussichtlich erst morgen kommt, aber es sollte doch gehen das der Code zumindest kompiliert wird oder? Tut mir leid für diese für euch warscheinlich totale "Noob" Frage aber ich würde an diesem Punkt gerne weiterkommen und im Forum habe ich dazu leider nichts gefunden. Gruß Markus.
Ach ja also Code hab ich zum testen das hier verwendet:
1 | #include <avr/iom8.h> |
2 | |
3 | int main(void) |
4 | {int i, n = 40; |
5 | DDRB = 0b00001100; |
6 | PORTB = 0x00; |
7 | while (1) |
8 | {
|
9 | PORTB ^= 0b00000100; // EX-OR |
10 | for (i=0; i<n; i++){ |
11 | _delay_ms(25); |
12 | }
|
13 | PORTB ^= 0b00001000; // EX-OR |
14 | }
|
15 | }
|
Ich hatte mit Makefiles am Anfang auch meine liebe Not und krieg auch jetzt immer noch nicht alles zusammen. Ein Tip wenn du unter Windows arbeitest: nimm das AVR Studio von Atmel. Dann kommst du mit den Makefiles nicht in Berührung und kannst Dich erstmal auf's Programmieren konzentrieren
Servas Markus Ich nehm an, Du verwendest das neuste AVR-Studio mit gcc-Integration. Damit brauchst Dich nimmer mit Makefiles auseinandersetzen (machts nämlich automatisch - net wie mit avr-gcc und Programmers Notepad). Du musst natürlich dem AVR-Studio sagen, wo die include-Dateien sind. Das geht unter Project->Configuration Options da unter Include Directories. Da musst den Pfad zum WinAVR include-Ordner angeben. Gruß aus München Andreas
Richtig. Und wenn WinAVR zuerst installiert wurde und danach das AVR Studio werden die wichtigen Pfade sogar automatisch erkannt und eingebunden. So war's zumindest bei mir. Ich arbeite seit ein paar Tagen damit und bin recht zufrieden
Danke für die schnellen Antworten. Tut mir leid, ich hatte vergessen zu schreiben das ich mit dem AVR Studio 4 arbeite. Also da gibt es bei mir unter "Projects" nicht "Configuration Options" Ich habe unter Projects jedoch "Assembler Options" wobei wenn ich dort den Pfad zu "C:\WinAVR\avr\include" angebe, kommt der fehler wieder. Ich habe es mit "#include <avr/io.h>", "#include <io.h>", "#include <avr/iom8.h>" und "#include <iom8.h>" im Code versucht, aber immer kommt der Fehler. Ist es ausserdem richtig, wenn ich ein Projekt eröffne, daß ich dann also Project Type "Atmel AVR Assembler" (was da als einzigstes steht), sowie als Debug Plattform "AVR Simulator" wähle? Kann ich damit dann auch das STK200 betreiben oder hat das damit garnix zu tun?
Servas nochmal. Du brauchst das neuste AVR-Studio4 (bei mir is des Version 4.12 Build 460 - einfach mal auf www.atmel.com schaun). Da kannst dann auch AVR GCC als neues Projekt auswählen. Mit dem Programmieren wirst glaub ich ein anderes Programm brauchen. Das AVR_Studio unterstützt nur das STK500 und die ISP-Adapter von Atmel(natürlich auch die Nachbauten). Da aber WinAVR avrdude benutzt und das AVR-Studio ja nur WinAVR über ein Plugin einbindet, weiß ich etz net genau, obst des STK200 mit AVR-Studio zum Laufen bringst(ich benutz STK500). Im Notfall halt avrdude anschauen und des erzeugte hex-File im Projektordner damit in den Controller schreiben.
Stelle erstmal sicher das du Version 4.13 (build 460) hast. Dann schaust du mal im Menu "Project" nach dem "Project Wizard". Da sagste "New Project" und dann müsstest Du dort "AVR GCC" auswählen können wenn alles richtig installiert ist. Wie gesagt, zuerst WinAVR, ich glaub am besten nach C:\WinAVR, und dann das AVR Studio. Dann geht das automatisch. Ob es in anderen Verzeichnissen geht weiß ich nicht weil ich das noch nicht probiert hab. Dann muß man es manuell einrichten
Super Sache ;-) Dank an euch, jetzt geht es soweit. Ich musste auf der Homepage von Atmel nach Version 4.13 suchen da er mir das sonst normal auf der Page nicht angezeigt hat. Jetzt krieg ich nur noch ne Fehlermeldung das "delay_ms" unbekiannt ist. Aber ich denke das muss ich jetzt nur noch irgendwo selber deklarieren oder gibt es dafür schon einen fertigen code?
Hallo Markus, damit das delay funktioniert einfach delay.h einbinden. #include <avr/delay.h> Gruß Volker
Nochmal zum Makefile: In der Tat, erst wird darauf hingewiesen, wie wichtig/komfortabel ein Makefile ist, ABER es arbeitet nicht jeder mit AVR Studio x.y, es gibt auch Leutz wie mich, die machen mit Linux rum und das noch mit einem Editor und eben Makefile von Hand gebaut. Und genau dazu fehlt was in dem Script. Genauso fehlt dann dazu die Kommandozeilengeschichte zu avr-gcc. Das musste ich mir erstaml muehsam raussuchen durch irgendwelche anderen Makefiles, die zu irgendwelchen AVR-Projekten gehoeren. Wieso nicht einen Exkurs zu Makefiles dazupacken? Natuerlich nicht als Kapitel 1 ooder 2, sondern in den Anhang.
Der Abschnitt "Exkurs Makefile" wurde anfaenglich von mir verfasst und von anderen Wiki-Nutzern erweitert/korrigiert. Es gab bis vor wenigen Wochen keine offizielle Version des AVR-Studio mit gcc-Integration. Die ersten Beta-Versionen waren auch so "im Fluss", dass ich keinen Tutorial-Abschnitt dazu erstellen wollte. Der Abschnitt sollte weder alle moeglichen Optionen des Compiler-Frontends erlaeutern, noch beschreiben wie man makefiles von null selbst erstellt, sondern lediglich ein paar grundlegende Hinweise geben, um aus dem C-Code etwas "brauchbares" zu erzeugen. Die WinAVR-makefile-Vorlage und mfile nehmen den Grossteil der Arbeit ab. Es ist "nur" ein Tutorial, auch wenn einige Abschnitte inzwischen etwas mehr als nur eine Einfuehrungsanleitung sind. Vollstaendige Information findet man in den Dokumentationen der gnu-Tools (make, gcc etc.) und im sehr guten avr-libc-Manual. Es ist meiner Meinung wenig sinnvoll, aus diesen Texten ganze Abschnitt in das Tutorial zu kopieren. Jeder kann das Tutorial im Wikki erweitern und verbessern. Ansonsten werde ich den Abschnitt bei Gelegenheit ueberarbeiten. Es wird dabei wohl auf einen Hauptabschnitt "Compilieren und Linken" hinauslaufen, in dem sowohl "AVR Studio/gcc-Plugin" und "Nutzung von Makefiles" als Unterabschnitte eingeordnet werden. Martin Thomas
Ich würde auch sagen, nimm ein Beispiel-makefile, oder noch besser, benutuze mfile. Ich hab das letztemal vor Jahren Makefiles selbst geschrieben, auf dem PC macht man das auch nicht, sondern arbeitet mit autoconf/automake. Deswegen nehm ich lieber ein Template und passe es immer an, ist ja nicht viel zu ändern, im Prinzip nur MCU und die SRC Dateien.
"es gibt auch Leutz wie mich, die machen mit Linux rum" das ist der schwachpunkt "die machen mit Linux rum". ich habe noch keinen linuxuser gekannt, der etwas brauchbares zum vorzeigen geschafft hat, die haben alle selber probleme mit dem linuxkauderwelsch und kommen eigentlich nicht auf den kern des ausführungsprogrammes. pebisoft
@pebisoft (& der interessierte Rest) hast ja nun wirklich einen schweren Stand. Erstmal, wie vielleicht schon richtig vermutet, kennst du zuwenig Leute, die mit Linux "rummachen" und dabei auch noch was sinnvolles rauskommt. Erweitere mal deinen Horizont. Und dann gibt es noch dieses Ding hier (clique ici: http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=13812). Vielleicht solltest du mal deine Verhaltensweise aendern, denn irgendwas vom Glaubenskrieg ueber Betriebssysteme will ich hier ueberhaupt nicht lesen.
da hast du recht , es gibt wenig leute die sich auf meiner höhe begeben können. mit dem unteren gebe ich mich nicht ab. ich brauche schon etwas besseres. ich will aber keinen damit erniedrigen, manche schaffen es halt nicht, aus dem herauszukommen wo sie gerade drinstecken. ich möchte auch keinen glaubenskrieg erklären. jeder soll das machen was er finanziell kann. es gibt arme menschen die immer im sumpf bleiben. pebisoft
pebisoft, deine Logik verstehe ich nicht. Versuchst du, dein geistiges Niveau mit Geld zu heben?
Für das Geld sollte er sich erstmal eine Shift-Taste kaufen. :)
Ich glaube, wir haben es hier mit 2 verschiedenen pebisofts zu tun : 1. ein Troll, der bis zum 1.2.2006 aus dem RoboterNetz-Forum verbannt wurde (siehe http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=13812&postdays=0&postorder=asc&start=0), mit seiner plumpen Anmache mich aber mitunter zum Schmunzeln bringt 2. einen durchaus hilfsbereiten Zeitgenossen, der auch Anfaenger normal behandelt
Möge sich der ,,richtige'' doch besser einen Account verschaffen und einloggen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.