- LiTime Speicher und Akkus         
Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 35

Thema: Yeti programmieren anhand einer ISP- Schnittstelle

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.03.2010
    Alter
    35
    Beiträge
    26

    Yeti programmieren anhand einer ISP- Schnittstelle

    Anzeige

    LiFePo4 Akku selber bauen - Video
    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 (Atmega 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

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.05.2007
    Alter
    32
    Beiträge
    183
    Hi Mandy88!

    Nochmal einige kleine Fragen: Der YETI bewegt sich "wild"? Was soll das bedeuten; ich meine, passiert da irgendwas in irgendwelchen Mustern? Was passiert, wenn du einfach nur eine Endlosschleife ausführst? Hast du das gute Stück in der Software initialisiert?

    Ich habe den YETI zwar nicht, aber so ein Verhalten bedeutet eigentlich einen Softwarefehler. Wenn du flashen kannst, dann läuft der Prozessor ja ordnungsgemäß.

    Oder moment: Hast du die Fusebits gesetzt? Also Externe Taktquelle beispielsweise?!

    Gruß,
    Bääääär

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    17.01.2009
    Ort
    Kaiserslautern, Germany, Germany
    Alter
    35
    Beiträge
    77
    Hi Mandy,

    Du hast ja richtig spaß an deine Yeti. Ich hab meinen zusammengebaut und 1 Tag danach in ne Kiste gepackt und im Schrank verstaut.

    Der Unterschied zwischen Atmega8 und Atmega8L ist lediglich das man den 8L schon mit 2,7V füttern kann aber er nur maximal 8Mhz verarbeiten kann. Der "normale" Atmega8 kannste erst ab 4,5V gebrauchen dafür kanner 16Mhz verarbeiten. Welchen du für den Yeti benutzt is also egal, da der Yeti mit 8Mhz und 5V arbeitet.

    Was an deinem Programm nicht funktioniert kann ich dir leider nicht sagen, denn meine telepatischen Fähigkeiten sind noch nicht so stark ausgereift, dass ich deine Gedanken über so eine weite Entfernung lesen kann. Also hättest du die Möglichkeit, her zu kommen dann kann ich sie vll lesen, oder du einfach mal dein Programcode postest.

    Den Bootloader musste nicht draufspielen, denn der is nur da um über die Infrarotschnittstelle zu programmieren. Daran kann es also nich liegen.

    Folgende Idee hätte ich noch:

    Batterien auswechseln (is mir auch schon passiert :-P ). Wenns daran gelegen hätt, dann kannste auch nochma die Infrarot verbindung testen.

    Evtl sind auch die Servos kaputt. Man weiß nie. Aber poste ma deinen Code, vll ist es einfach nur ein kleiner Fehler.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    26.03.2010
    Alter
    35
    Beiträge
    26
    Hallo,

    zum Testen, ob ich den Roboter beschrieben bekomme, benutze ich nur die "mitgelieferten Quellcodes". Die sind doch nicht fehlerhaft, oder?
    Mit dem vorgeschriebenen Code, der die Augen blinken lassen soll, bewegt sich der Roboter nur "wild", wenn ich das Programm draufgespielt habe.
    Damit meine ich, dass eigentlich nur die Augen blinken dürften. Der Roboter bewegt aber seine Motoren, also Beine.

    Kann das daran liegen, dass ich einen Atmega benutze, der nicht mitgeliefert worden ist???

    Kann ich beim mitgeliefertem Atmega "die festgelegte Sperre" für die ISP- Schnittstelle irgendwie umgehen???

    Zum Draufspielen des Quellcodes benutze ich myAVR Workpad. Könnte das der Grund sein? Welches Programm könnte ich noch probieren???

    @ Flash2over:
    Ich habe ganz neue Batterien in den Yeti eingesetzt. Die Servos haben ja bei der Kalibrierung funktioniert, deswegen gehe ich davon aus, dass die Servos nicht kaputt sind. Außerdem führt der Yeti das vorinstallierte Programm vom mitgeliefertem Atmega aus.

    Langsam fällt mir leider auch nix mehr ein.

    Hat noch jemand eine Idee, wie ich den Yeti programmiert bekommen könnte???

    MFG
    Mandy

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.05.2005
    Alter
    32
    Beiträge
    601
    Hi,

    hast du schon mal probiert ein leeres Programm zu flashen, also ein
    einfache Endlosschleife? Macht er da immer noch was?
    Das Programmieren funktioniert aber? Also das was du reinschreibst ist
    auch indentisch mit dem was du wieder ausließt?
    Wie oben schon erwähnt würde ich mit noch mal die Fusebits anschauen
    sieht ja nach nem Keramikschwinger aus =/= "nomalen" Quarz.
    Grüße Furtion

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    26.03.2010
    Alter
    35
    Beiträge
    26
    Hallo,

    1. Der mitgelieferte Atmega8 lässt sich net programmieren, weil die Schnittstelle ISP gesperrt ist, wie schon vorher beschrieben.

    2. Habe jetzt eine leere Endlosschleife auf einen anderen Atmega geschrieben. Der Yeti macht jetzt wirklich gar nicht mehr.

    3. Als Fusebits habe ich extern crystal/resonator medium Frequenz; Start-up time: 16k CK+ 4ms eingestellt.

    4. Habe jetzt versucht das mitgelieferte Programm (02, Yeti will blink its right eye 5 times) auf den Atmega zu schreiben. Das funktioniert aber nicht.

    Der Fehlertext lautet:


    Hinweis: Um den vollen Funktionsumfang von C/C++ nutzen zu können, verwenden Sie bitte die Dateiendung '.cc' oder '.cpp'
    compilieren ...
    In file included from c:/programme/myavrworkpad/winavr/lib/gcc/../../avr/include/avr/io.h:329,

    from yeti.h:24,
    from test.c:4:
    c:/programme/myavrworkpad/winavr/lib/gcc/../../avr/include/myAVR.h:95:3: warning: #warning F_CPU nicht definiert
    linken ...
    test.o: In function `main':
    test.c (.text+0xa): Linkerfehler: undefinierte Sprungadresse: `vInitYeti'
    (.text+0x14): Linkerfehler: undefinierte Sprungadresse: `vFrontLEDs'
    (.text+0x1a): Linkerfehler: undefinierte Sprungadresse: `vWaitMilliseconds'
    (.text+0x1e): Linkerfehler: undefinierte Sprungadresse: `vFrontLEDs'
    (.text+0x24): Linkerfehler: undefinierte Sprungadresse: `vWaitMilliseconds'

    Kann mir da jemand weiterhelfen?

    MFG Mandy

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.05.2005
    Alter
    32
    Beiträge
    601
    Hi,

    also bei dem Quarz würde ich noch mal schauen (Datenblatt) es gibt auch
    die Einstellung für nen Keramitschwinger (hab ich aber noch nie benutzt).
    Der andere Atmega lässt sich aber ganz normal beschreiben/lesen oder?
    Mhm bei den Fehlercodes kenn ich mich net so gut aus, evt. ein
    Leerzeicehn in dem Pfad wo die Datei liegt?/ heißt die Datei main.c/ hast
    du die lib für den yeti eingebunden (auch den pfad angegeben)
    Das würde mir jetzt so einfallen.
    Grüße Furtion

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    26.03.2010
    Alter
    35
    Beiträge
    26
    Hallo Leute,

    zur besseren Hilfe der Quelltext:

    //----------------------------------------------------------------------
    // Titel : Yetis blinkendes Auge
    //----------------------------------------------------------------------
    // Funktion : Das rechte Auge des Yetis blinkt 5 x
    //----------------------------------------------------------------------
    // Prozessor : Atmega8
    // Takt : 3.6864 MHz
    // Sprache : C
    // Datum : 7. April 2010
    // Version : 1.0
    // Autor : Mandy
    //----------------------------------------------------------------------
    #define F_CPU 3686400 // Taktferquenz des myAVR-Boards
    #include <avr\io.h> // AVR Register und Konstantendefinitionen
    #include "yeti.h"
    #include <avr/eeprom.h>
    //----------------------------------------------------------------------

    int main(void)
    {
    int i; // definiert Variable i als Integerwert
    vInitYeti();

    for(i=0 ;i<5 ;i++)
    { // Zählschleife, Wiederholung 5x
    vFrontLEDs(RIGHT); // aktiviert das rechte Auge vom Yeti
    vWaitMilliseconds(500); // 0,5 s Wartezeit
    vFrontLEDs(OFF); // deaktiviert das rechte Auge vom Yeti
    vWaitMilliseconds(500); // 0,5 s Wartezeit
    }
    return 0;
    }
    //----------------------------------------------------------------------

    Und hier noch mal der Fehlertext:

    Hinweis: Es wird die im Quelltext angegebene Sprache verwendet: C
    Hinweis: Es wird die im Quelltext angegebene Einstellung des Prozessors verwendet: Atmega8
    compilieren ...
    linken ...

    unbenannt.o: In function `main':
    unbenannt.cc (.text+0xa): Linkerfehler: undefinierte Sprungadresse: `vInitYeti()'
    (.text+0x14): Linkerfehler: undefinierte Sprungadresse: `vFrontLEDs(unsigned char)'
    (.text+0x1a): Linkerfehler: undefinierte Sprungadresse: `vWaitMilliseconds(unsigned int)'
    (.text+0x1e): Linkerfehler: undefinierte Sprungadresse: `vFrontLEDs(unsigned char)'
    (.text+0x24): Linkerfehler: undefinierte Sprungadresse: `vWaitMilliseconds(unsigned int)'

    Als Fusebits habe ich eingestellt: Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 64 ms

    Zum Programmieren verwende ich das Programm myAVR Workpad und USB- Programmer mySmartUSB.

    Kann mir jemand helfen? Ich verstehe die Fehlermeldung nicht.

    MFG Mandy

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    17.01.2009
    Ort
    Kaiserslautern, Germany, Germany
    Alter
    35
    Beiträge
    77
    Hi Mandy,

    Code:
    #define F_CPU 3686400 // Taktferquenz des myAVR-Boards
    #include <avr\io.h> // AVR Register und Konstantendefinitionen
    #include <avr/eeprom.h>
    kannste weglassen.
    -CPU Frequenz ist auch 8Mhz und nicht 3,6864Mhz
    -Die io.h und die eeprom.h ist wenn sie gebraucht wird schon in der Yeti.h mit eingebunden.
    Daher reicht das einbinden der Yeti.h

    #include "YETI.h" muss also bleiben.

    Der Rest ist ok.
    Du musst allerdings deinem Programm sagen wo diese Yeti.h liegt. Da ich das auch noch machen muss an meinem Laptop mach ich dazu nacher n kleines Bildertutorial. Jetzt muss ich allerdings erst schnell was erledigen. Aber gegen 9.30 bin ich wieder daheim.

    Bis dahin
    Gruß
    Thomas

    p.s. für Quellcode immer die Code Funktion des Forums benutzen, so bleibst übersichtlicher!

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    26.03.2010
    Alter
    35
    Beiträge
    26
    Hallo Thomas,

    Ich habe schonmal ein bissl rumprobiert.
    Ich habe dem Programm gesagt, wo yeti.h liegt.

    #include "C:\test\yeti.h"

    Meinst du das damit? So funktioniert das leider immer noch nicht.

    Ich wusste nicht, dass das Forum eine Code- Funktion hat, sorry. Aber ich werde die Funktion in Zukunft nutzen.

    MFG
    Mandy

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test