Es geht auch mit Dev-C++. ;-)
Druckbare Version
Es geht auch mit Dev-C++. ;-)
also ich habe hier mal eine kleine doku raufgeladen, wie ich das avr studio eingerichtet habe, welchen quellcode ich verwendet haben und was für fehlermeldungen kamen. wenn ich was falsch beschrieben habe oder was vergessen habe, könnt ihr es ja verbessern, mit z.b. rot markieren und neu hochladen.
danke
Im Verzeichnis selbst musst Du nur Deine test.c haben, nix anderes! asuro.c kommt beim Projekt dazu. Die notwendigen Header includierst Du.
... und mache erst mal was einfaches, z.B. Init() in main(), sonst nix, dann das einfache Programm, das ich Dir gezeigt habe. Dann geht es nit dem Schmodder weiter.
Dir fehlen in asuro.c Header. Schau mal beim Include-Verzeichnis, ob da alles stimmt. Muss exakt der Pfad von asuro.h sein!
Bei MS Vista dreht sich mir sowieso die Galle um. Da könnte ich auch noch zum "Linux-Kommandeur" werden. ;-)
Du bist kurz davor, nicht aufgeben. Sind die Includes.
*spam*
Dafür wühlt er jetzt in AVRStudio herum ...Zitat:
Seitdem wühlt er nur noch in MakeFiles herum. Wenn er Deinem Vorschlag auch noch folgt, wird seine Breitenbildung signifikant erhöht. Ob er zum gewünschten hex-File gelangt, bleibt noch offen.
:-s, wie ? Du mußt zu Maus greifen ? :-sZitat:
Ich bevorzuge das AVR Studio bei ISP, da man nach dem Kompilieren/Linken mit einem einzigen Mausklick flashen kann.
Ich erledige das mit einem Tastendruck von Emacs aus, bin etwa 3 Sekunden schneller als Du und schone meine Gelenke :mrgreen:
*/spam*
P.S.
Der Editor von Avr Studio ist das letzte, wenn man vi oder Emacs kennt, will man nichts anderes mehr haben ...
Wenn ich direkt auf das c-File klicke, geht MS VC++ 2005 auf. Der Editor ist professionell! Aber ich schreibe mit jedem Editor. Das ist übrigens wirklich nicht sein Problem ;-), er kann sogar MS Word bedienen. :) Sein Problem ist das Verständnis für die Projektorganisation und den Ablauf des Kompilierens und Linkens. Deshalb hat er auch Funktionen und Variablen im Programm, die niemand kennt! Von Linux (habe nix dagegen!) und MS Vista möchte ich momentan wenig wissen, ich habe mich an W2K und XP gewöhnt, das reicht.
Ich verwende Windows, weil ich MS VC++ verwende und das Office-Paket und ... ;-)
PS: Ich musste bei Linux einmal den Kern neu compilieren, als ich einen 3D-Treiber installieren wollte, habe es sogar geschafft, danach (ca. 30 min.) war ich aber bedient. ;-)
hrhr... ich kann izaseba nur beipflichten.... wer mal mit linux angefangen hat und sich ein wenig damit beschäftigt hat, wird nicht mehr wechseln wollen..... =)
Pinguine sind halt cooler als fahnen...
[FLAMEWAR]
Ist hier nicht noch ein begeisterter Mac-User, der uns von seinem Apple Betriebssystem überzeugen will? Das einzig Wahre sind sowieso selbstgemachte Betriebssysteme. :)
[/FLAMEWAR]
@alias_host: Wie sieht es aus? Schon ein hex-File aufgetaucht?
ehenkes, das musst du mir noch einmal genauer erklären.
also ich habe die asuro. dateien wieder aus meinem workspace rausgeschmissen.Zitat:
Im Verzeichnis selbst musst Du nur Deine test.c haben, nix anderes!
was meinst du damit genau??? ich habe nicht wirklich viel ahnung von solchen sachen, habe bis jetzt immer nur java programmiert und da gibts kein .c und .h ... :)Zitat:
asuro.c kommt beim Projekt dazu. Die notwendigen Header includierst Du.
also ich bin einfach mal unter "Header Files" gegangen und habe über "Add existing header" "asuro.h" "i2c.h" "lcd.h" "myasuro.h" "rc5.h" hinzugefügt.
ich habe jetzt einfach mal dein programm reingeladen. das ist ja ansich das gleiche. main, init gibts alles drin. da bringt er jetzt nur noch den fehler:Zitat:
... und mache erst mal was einfaches, z.B. Init() in main(), sonst nix, dann das einfache Programm, das ich Dir gezeigt habe.
../testStudio.c:5: undefined reference to `Init'
also ich denke einfach mal, dass er die Methoden nicht findet.
was du mit header meinst habe ich ja am anfang schon gefragt. der pfad müsste ansich stimmen, kannst ja in der doku nachsehen.Zitat:
Dir fehlen in asuro.c Header. Schau mal beim Include-Verzeichnis, ob da alles stimmt. Muss exakt der Pfad von asuro.h sein!
der Pfad ist:"..\..\..\..\..\AsuroLib\lib\inc\" auf meinem computer liegt asuro.h auch unter "C:\AsuroLib\lib\inc".
ich habe die doku noch mal so umgeändert, wie mein momentaner stand ist
Ich habe mir deine word-datei angeschaut. Dir fehlt nur noch asuro.c unter Sources im Project Tree ("Stierkopf") wegen Init().
Nein! Obige Header hast Du ja bereits über das include-Verzeichnis bekannt gemacht, die gehören ja auch nicht konkret zu Deinem Projekt, sondern sind allgemein!Zitat:
... und habe über "Add existing header" "asuro.h" "i2c.h" "lcd.h" "myasuro.h" "rc5.h" hinzugefügt.
Genau wie asuro.c. Das gehört allgemein zur ASURO-Bibliothek, also wird es nur über den Project Tree ("Stierkopf", "AVR GCC").
Also nochmal:
Konkretes aus Deinem Projekt ist in deinem richtigen Windows Explorer-Verzeichnis dabei, bei Dir lediglich test.c.
Wirklich ins Projekt eingebunden werden die Files übrigens nur über den Stierkopf, den Project Tree.
Allgemeines wird an drei Stellen eingebunden:
1) Include-Verzeichnis (inc)
2) Bibliotheksverzeichnis (Library, lib)
3) "Stierkopf" (so eine Art virtueller Explorer! Jeder der Visual Studio benutzt, kennt das!)
So nun zu Deinem winzigen Problem:
OK, dabei bleiben wir jetzt! Kein Gefrickel!!!Zitat:
da bringt er jetzt nur noch den fehler:
../testStudio.c:5: undefined reference to `Init'
Init() ist eine Funktion in der Datei asuro.c, die er nicht findet. Klar, weil asuro.c nicht bei den Sources bekannt gemacht wurde.
Also zum Vergleich, wie sieht das bei mir aus?
Im Pfad des Projektes (also richtig im Windows-Explorer!) findet sich:
test.c ( das ist die Datei mit deiner Funktion main(){...} )
test.aps
test.aws
Sonst nix!!! Sonst nix!!! Sonst nix!!!
Die Funktion Init() steht in asuro.c, also muss diese dazu gelinkt werden, steht auch nicht in libasuro.a, weil dort asuro.c fehlt.
asuro.c wird nun im Project Tree im AVR Studio (vorne beim Steierkopf "AVR GCC") hinzugefügt ("Add Existing Source File(s)").
Damit wird aus asuro.c durch Compilieren die Objekt-Datei asuro.o, die dann dazu gelinkt werden kann.
Nimmt man asuro.c wieder weg erhält man den Fehler:
../ASURO_001.c:5: undefined reference to `Init'
Probiere es aus! Rein - Raus - Rein - Raus ... (nur im Project Tree "AVR GCC", dort steuerst Du Deine Files im Projekt! Nicht im Windows-Explorer, nur dort)
Geht das nun? Wenn nein, bitte Fehlermeldung.
Fazit:
a) im Project Tree: test.c (oder wie das auch immer heißt) und asuro.c
b) LIB-Verzeichnis: libasuro.a
c) INCLUDE-Verzeichnis: asuro.h und alle anderen xxx.h
b) und c) werden im Project Tree über "External Dependencies" ausgewiesen.
Mehr brauchst Du nicht am Anfang. Dann packt man später seine eigenen Header und Sources mit ins Projekt-Verzeichnis in Windows und im Project Tree.
Wichtig ist die Trennung Allgemeine Dateien und Dateien im Projekt.
asuro.c ist ein Zwitter! Das liegt an der beschissenen ASURO-Bibliothek.
Wenn das klappt - was ich doch nun schwer hoffe - probierst Du folgendes Progrämmchen:
Code:#include "asuro.h"
int main()
{
Init();
int i=0;
for (i=0;i<100;++i)
{
BackLED (OFF, ON);
Msleep(200);
BackLED (ON, OFF);
Msleep(200);
}
BackLED (OFF, OFF);
while (1);
return 0; //wird nicht erreicht
}