PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rp6 v2



george216
11.08.2015, 17:31
Hallo alle zusammen,

ich hab mir denn RP6 V2 gekauft und er funktioniert soweit auch.
die Beispiele Auf Englisch funktionieren aber die Beispiele auf Deutsch nicht ,ich bitte euch um Hilfe ,ich will die Deutsche Beispiele in hex kriegen aber ich kriege das nicht hin
,wenn ich mit Notpad benutze zeigt mir immer so ,
Nur wenn ich das LED Example ,die auf Deutsch ist , Kompelieren will mit Notepad 2 kommt folgende Fehlermeldung im Output:
> Process Exit Code: 2
> Time Taken: 01:01

ich weiß es nicht ,was ich machen soll



ich habe auch die bibliothek von Deutsch Beispielen hingefügt ,das geht trotzdem nicht,kann mir jemad auch bitte erklären ,warum bei Deutsche und Englische Beispielen Unterschiedliche bibliotheken ?bei Englische immer kommt die MakeFILE mit jede Englisch Beispielen ,ich hab viel darüber gelesen aber ich bin vollig durcheinander ,ich bitte euch um Hilfe

ich hab gegooglet und Foren durch sucht nach Ähnlichem hab aber leider nicht´s gefunden.
über Hilfe würde ich mich freuen.
Mfg
George

Dirk
13.08.2015, 12:58
Hallo George,

erstmal Glückwusch zum RP6v2!

Deine Fragen solltest du besser im RP6 Forum (https://www.roboternetz.de/community/forums/58-Robby-RP6) stellen; da sind die Leute, die den RP6 gut kennen.

Zu deinen Fragen:
1. Ich kenne keine Englischen und Deutschen Beispiele oder Bibliotheken. Bei den Examples, die ich kenne, sind die Kommentare in den Beispielen Englisch und die Ausgaben des Programms auf dem Terminal sind auch Englisch (auch im LED Beispiel).
2. Der Process Exit Code: 2 bedeutet, dass das Programm nicht fehlerfrei kompiliert werden konnte. Wenn du hier im Forum Hilfe dazu suchst, poste am besten das komplette Programm plus dem ganzen Fehlertext.

Meine Fragen:
1. Hast du überhaupt schon ein eigenes Programm kompilieren können oder nur die fertigen HEX in den Roboter geladen?
2. Was ist dein Ziel? Alles Beispiele in Deutsch übersetzen?

george216
13.08.2015, 17:18
Danke dir Dirk viel mals Für den Antwort ,
ich will eigne Programme schreiben aber eine Sache versteh ich noch nicht ,die initRobotBase(); Hier wird eine Funktion aus der RP6Library aufgerufen, die den AVR Mikrocontroller initialisiert.
Damit werden die Hardware Funktionen des AVRs konfiguriert. Ohne diesen
Aufruf arbeiten die meisten Funktionen des Mikrocontrollers nicht korrekt! Also niemals
vergessen das als erstes aufzurufen!
aber in der der RP6Library steht nur (initRobotBase(); ),wie ich das verstanden hab ,das sollte in RP6Library so aussehen ( initRobotBase(){....hier muss etwas geschrieben ,damit er das macht} )
noch eine Frage ,wenn ich meine eigne Programm schreibe ,welche Programm soll ich benutzen (Notepad2 oder AVR STudio 4,geht auch mit Visual Studio auch) ?und welche biblotecken soll ich benutzen oder reicht nur Makefile.
mfg
George

Dirk
13.08.2015, 18:09
Eine kurze Anleitung für die Form neuer Programme findest du hier (https://www.roboternetz.de/community/threads/62437-Erstes-Programm-MAKE-ALL?p=582222&viewfull=1#post582222).
Vorher must du den kompletten Examples Ordner auf deine Festplatte kopieren.
Dann müßte das Kompilieren eigener Programme klappen.

Zum Thema "initRobotBase()":
Die RP6 Robot Base Library besteht aus 4 Dateien:
1. RP6Config.h ->
Hier stehen Konfigurationen für deinen Roboter, z.B. die Encoder-Auflösung, mit der man eichen kann, wie viele Impulse dein RP6 auf einer bestimmten Strecke zählt.
2. RP6RobotBase.h ->
Hier stehen die grundlegenden Festlegungen über die Ein-/Ausgänge, die du auch schon mit der initRobotBase() Funktion gesehen hast.
3. RP6RobotBaseLib.h ->
Dies ist der Header (.h !!!) der Library. Hier stehen Definitionen, Variablen, Funktionsdeklarationen ...
4. RP6RobotBaseLib.c ->
Das ist die eigentliche Library = "Source" (.c !!!). Da drin sind die Funktionen, die im Header deklariert wurden.

Wegen deiner Frage nach der initRobotBase(): Im Header findest du also nur die Deklaration (void initRobotBase(void); ).
Die eigentliche Funktion steht im "Source":

void initRobotBase(void)
{
portInit(); // Setup port directions and initial values.
// THIS IS THE MOST IMPORTANT STEP!

cli(); // Disable global Interrupts
....

Da drin findest du dann auch den Aufruf von portInit();
Dieses Macro findest du als "#define portInit();" in der RP6RoboBase.h

Du siehst also: Da braucht es noch viel Einarbeitung und Lesen.

Hilfen:
RP6 (http://rn-wissen.de/wiki/index.php?title=RP6)
RP6-Programmierung (http://rn-wissen.de/wiki/index.php?title=RP6_-_Programmierung)
RP6v2 (http://rn-wissen.de/wiki/index.php?title=RP6v2)