Forum: Compiler & IDEs Startprobleme mit AVR Studio 4


von DerStudent (Gast)


Lesenswert?

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!

von B e r n d W. (smiley46)


Lesenswert?

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

von DerStudent (Gast)


Lesenswert?

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!

von Al3ko -. (al3ko)


Lesenswert?

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ß

von DerStudent (Gast)


Lesenswert?

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.

von Al3ko -. (al3ko)


Lesenswert?

Was hast du denn zuerst installiert?

AVR Studio oder WinAVR?

von DerStudent (Gast)


Lesenswert?

AVR Studio 4

von Al3ko -. (al3ko)


Lesenswert?

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.

von B e r n d W. (smiley46)


Lesenswert?

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.

von DerStudent (Gast)


Lesenswert?

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??

von Daniel (Gast)


Lesenswert?

Hast du das include mit "xx" oder mit <xx>?

von DerStudent (Gast)


Lesenswert?

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

von DerStudent (Gast)


Lesenswert?

Habe RP6RobotBaseLib.h nun in das entsprechende Verzeichnis eingefügt.
Wird immer noch nicht gefunden, selbe Error-Meldung.

von Daniel (Gast)


Lesenswert?

Die Fehler sind nicht in deiner datei, sondern in der robotbase.h datei! 
Da ist die io.h nicht richtig eingebunden!

von DerStudent (Gast)


Lesenswert?

Und was muss ich jetzt machen?

von Oliver S. (oliverso)


Lesenswert?

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
Noch kein Account? Hier anmelden.