Yeti programmieren anhand einer ISP- Schnittstelle
Hallo,
ich versuche grade einen Yeti- Roboter anhand einer ISP- Schnittstelle mit Hilfe eines mySmartUSB zu programmieren.
Die Infrarot- Schnittstelle habe ich nicht zum Laufen bekommen, deswegen bin ich auf ISP umgestiegen.
Das Problem hierbei ist, dass der mitgelieferte Controller (Atmega8) ISP "verbietet". Deswegen muss ich jetzt einen einfachen Atmega benutzen.
Leider funktioniert das nicht so, wie ich mir vorgestelt habe.
Ich kann mit MyAVR Workpad zwar Programme draufschreiben, aber sie werden nicht ausgeführt. Der Yeti bewegt sich nur "wild", auch wenn ich nur die "Augen" blinken lassen möchte.
Meine Fragen dazu:
1. Muss ich einen Atmega8L oder kann ich auch einen einfachen Atmega8 dazu verwenden?
2. Wieso führt der Yeti nicht das Programm aus, welches ich auf den Controller schreibe?
3. Muss ich irgendetwas in der Programmierung beifügen oder so, um den vorinstallierten Bootloader zu simulieren oder zu ersetzen???
Ich hoffe, ihr könnt mir helfen.
MFG MAndy
Liste der Anhänge anzeigen (Anzahl: 1)
Also:
Du musst dir als erstes einma WinAVR installieren. Hier
Danach installierst du es (Wenn du das nicht schon vorher gemacht hast).
Damit bekommst du einen AVR-GCC Compiler. Dieser kann dir deinen Programmcode in einen auf dem AVR lauffähigen Code umwandeln.
In der Installation ist das sogenannte "Programmers Notepad 2" enthalten. Das ist die Programmieroberfläche die du am bessten zum Yeti und Asuro programmieren nutzt.
Jetzt musst du wissen was du brauchst um ein lauffähiges Programm zu erstellen.
Da wären:
-Die eigentliche .c Datei
-Ein Makefile
-Die Yeti-Bibliotheken
Die eigentliche .c Datei:
Sie ist die eigentliche Datei in der du dein Programm entwickelst. In ihr muss bezug auf die anderen Dateien sein. Dies wird hier durch #include "yeti.h" gemacht.
Makefile
Im Makefile sind Informationen enthalten die helfen das Programm in Maschienensprache umzuwandeln.
Wenn du dir das Makefile in einem Editor anschaust sieht man z.B. für welchen AVR Compiliert werden soll (MCU = atmega8). Hier musst du anfangs nichts ändern. Einfach ein schon fertig geschriebenes Makefile benutzen. (Wichtig ist auch hier bei zusätzlichen "Bibliotheken" muss ein Verweis ins Makefile, gibt aber genug Infos im RN-Wissen bzw. Asuro-Wiki)
Die Yeti-Bibliotheken
Diese Bibliotheken besehen aus 2 Files. Die Yeti.h und die Yeti.c.
Eine Bibliothek beinhaltet Routinen, welche die Programmierung vereinfachen. So wird z.B. festgelegt was beim AugenLEDanschalten Befehlt passiert. So hast du einfache Befehle und musst nicht immer mehrere Einzelbefehle eintippen. Das macht das Programm kürzer und leichter zu verstehen.
Die Bibliotheken werden über den Linker später beim Compilieren eingebunden. Da in der .h Datei die .c Datei eingebunden ist müssen wir nur die .h Datei im Hauptprogramm einbinden.
Also brauchen wir jetzt letztendlich 4 Dateien. Diese hab ich dir in einer .rar Datei angehängt. Sie sind auch auf der Yeti CD im Verzeichnis "/YETI_src/Examples/02, Yeti will blink its right eye 5 times"
Dabei ist noch eine .pnproj und eine .pnps Datei. Die .pnpproj kannst du mit dem Programmers Notepad 2 öffnen und hast alle Files in einer Auswahlleiste.
Wenn du das alles geladen hast kannst du im PN2 auf Tools->[WinAVR]Make All klicken. Das Programm Compiliert dir jetzt deinen Code und im Verzeichnis in dem alle Dateien liegen sollte eine .hex Datei
liegen. Diese kannst du jetzt auf deinen Atmega flashen und es sollte so laufen.
Klingt alles ein bisschen kompliziert aber du kannst ja gerne nachfragen.
Gruß
Thomas
Liste der Anhänge anzeigen (Anzahl: 1)
Ach ja hier noch eine von mir Compilierte test.hex Datei damit kannst du schonma testen. Sie sollte funktionieren.