Schönen guten Tag, ich habe im Rahmen meines Studiums die Möglichkeit bekommen, das Programmieren in C zu erlernen, und möchte diese Gelegenheit auch gerne wahrnehmen nur leider hakt es bei mir schon direkt zu Beginn. Uns wurde ans Herz gelegt mit dem AVR Studio 4 zu arbeiten und ich habe dazu jetzt auch ein Handbuch erhalten, mit dessen Hilfe ich mein erstes Programm schreiben sollte. War auch alles gut verständlich und habe ich so übernommen aber wenn ich es dann durchlaufen lassen will kommen diese beiden Fehlermeldungen: error: Cannot find include file: RP6RobotBaseLib.h error: syntax error, unexpected FUNCTION Habe schon alles erdenkliche versucht, wo genau muss ich diese Library denn einfügen? Ich habe das Gefühl da ist bei der Installation was schiefgelaufen, weil ich dem Handbuch Schritt für Schritt gefolgt bin und das laut Plan alles rund laufen sollte. Hier nochmal mein Ansatz: #include "RP6RobotBaseLib.h" int main(void) { initRobotBase(); writeString("Hallo Welt!\n"); return 0; } Vielen vielen Dank schonmal für eure Hilfe!
Und wo ist diese Datei "RP6RobotBaseLib.h"? Sie wird im Projektverzeichnis erwartet. Die Funktionen initRobotBase(); und writeString(char *ptr); müssen dem Compiler bekanntgemacht werden und sollten dann auch in einer Library oder in einem zweiten C-file zu finden sein. Es gibt vermutlich auch noch eine RP6RobotBaseLib.c
Ich habe jetzt die "RP6RobotBaseLib.h" - Datei im entsprechenden Verzeichnis gespeichert. Anschließend wurde ich noch nach weiteren Dateien gefragt, die ich nun auch allesamt dort eingefügt habe. Jetzt habe ich allerdings immer noch insgesamt 4 Errors. Zum einen fehlt mir noch die Datei :" avr/io.h " sowie die Datei "avr/interrupt.h" . Wo finde ich sowas bzw. wie erstelle ich mir die selbstständig? Und dann noch diese beiden Errors: RP6RobotBase.h(209): error: PORTA: Unknown instruction or macro RP6RobotBase.h(209): error: syntax error, unexpected '=' Sehe ich das richtig, dass da irgendwas mit dieser RP6RobotBase.h - Datei nicht stimmt? Habe die einfach unbearbeitet in das Verzeichnis übernommen. Bin aber auf jeden Fall schon ein Stück weitergekommen vielen Dank!
DerStudent schrieb: > Jetzt habe ich allerdings immer noch insgesamt 4 Errors. > Zum einen fehlt mir noch die Datei :" avr/io.h " sowie die Datei > "avr/interrupt.h" . Installiere mal winavr. http://winavr.sourceforge.net/ http://sourceforge.net/projects/winavr/files/latest/download?source=files Gruß
Ist geschehen...war aber irgendwie nicht mit enthalten. Oder wie ist das AVR Insight [Win AVR] jetzt zu verwenden? Dem fehlen immer noch die Dateien " avr/io.h " sowie "avr/interrupt.h" Kann man nicht diese beiden Dateien nicht auch irgendwie runterladen? Tut mir Leid, dass sich das jetzt so zieht, aber irgendwie is da der Wurm drin.
DerStudent schrieb: > AVR Studio 4 Deinstalliere mal bitte sowohl AVR Studio als auch WinAVR. Dann installierst du bitte zuerst WinAVR und dann AVR Studio. Ich meine mal irgendwo gelesen zu haben, dass das die richtige Reihenfolge sei. Ggf. müsste noch ein Pfad bei den Umgebungsvariablen eingefügt werden. Aber eines zur Zeit :) Einfach die IO Dateien hinzufügen halte ich persönlich für unklug und bin mir auch nicht sicher, ob das funktionieren wird, lasse mich aber gerne eines Besseren belehren. Fakt ist nämlich, dass du die Dateien bereits auf dem Rechner hast - nämlich durch deine Installation von WinAVR.
So findet der Compiler Dateien im eigenen Verzeichnis: #include "RP6RobotBaseLib.h" So die mitgelieferten Standard-Definitionen: #include <stdio.h> #include <string.h> Und so AVR-spezifischen: #include <avr/io.h> #include <avr/interrupt.h> Am leichtesten findet Du das heraus, indem Du mit einem schon funktionierenden Projekt "spielst" und die Einstellungen vergleichst. Was oft vergessen wird, geh auf Eigenschaften (das Zahnrad oben in der Menüleiste) und gib da bei Frequency den Prozessortakt in Herz ein. Bei Device sollte Dein Prozessortyp angezeigt werden.
Ist geschehen...selbe Problematik. Der vermisst wieder die Dateien " avr/io.h " sowie "avr/interrupt.h". Und warum die anderen beiden Errors? RP6RobotBase.h(209): error: PORTA: Unknown instruction or macro RP6RobotBase.h(209): error: syntax error, unexpected '=' Bin ich irgendwie ein Vollpfosten oder ist mein Laptopt verflucht oder was ist das??
Ich hatte es mit "xx" und habe es nun auf <xx> geändert. Resultat: error: Cannot find include file: RP6RobotBaseLib.h error: syntax error, unexpected FUNCTION
Habe RP6RobotBaseLib.h nun in das entsprechende Verzeichnis eingefügt. Wird immer noch nicht gefunden, selbe Error-Meldung.
Die Fehler sind nicht in deiner datei, sondern in der robotbase.h datei! Da ist die io.h nicht richtig eingebunden!
DerStudent schrieb: > Ich hatte es mit "xx" und habe es nun auf <xx> geändert. > > Resultat: > > error: Cannot find include file: RP6RobotBaseLib.h > error: syntax error, unexpected FUNCTION Nochmal ganz langsam: headerdateien, die zu deinem Programm gehören, wie "RP6RobotBaseLib.h", werden so eingebunden:
1 | #include "RP6RobotBaseLib.h" |
Der Compiler erwartet die Datei dann im Hauptverzeichnis des Projektes. Befindet sich die Datei woanders, gibt es zwei Möglichkeiten: a) Du gibst den vollständige Pfad an (absolut oder relativ) b) Du gibst in den Projekt-Settings den Pfad zu dem Verzeichnis an, in dem sich die Inklude-Dateien befinden. Das bietet sich immer dann an, wenn man Sourcecode-Libs benutzt, wie in deinem Fall auch. Dann muß man die header nicht alle in das Projekt-Source-Verzeichnis kopieren. Systemdateien, die mit dem Compiler mitgeliefert wurden, werden so inkludiert:
1 | #include <avr/io.h> |
Oliver
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.