-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: ASURO Lib Problem (Anfänger)

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    03.06.2009
    Ort
    Ludwigshafen
    Alter
    26
    Beiträge
    22

    ASURO Lib Problem (Anfänger)

    Anzeige

    Hallo an Alle,

    zu Allererst möchte ich mich dafür rechtfertigen, dass ich hier ein neues Thema eröffne, aber ich habe hier echt keinen Überblick mehr.
    Ich habe hier im Forum schon alles Mögliche durchsucht, aber finde doch keine passende Antwort, darum wäre ich um jeden Rat dankbar.

    Ich habe den Asuro ungefähr eine Woche und habe auch schon ein kleines bisschen damit rumexperimentiert. Doch da ich bemerkte, dass ich keine Anweisung nur für eine bestimmte Zeit festsetzen konnte, war ich gezwungen mich in das Thema library reinzulesen.

    Überall steht ändern, ändern, ändern. Ich habe mir alle möglichen Sachen runtergeladen, und habe ehrlich gesagt gar keinen Überblick mehr.
    Entweder bin ich einfach doof oder ich bin sowas von unfähig.

    Daher meine Frage: Könnte mir jemand bitte jmd. genau erklären wie ich was machen muss, um endlich eine zeitlichbegrenzte bedingung programmieren zu können, ohne dass immer diese Fehlermeldung kommt.

    In Sachen Programmieren bin ich ein totaler Anfänger, habe mir jedoch schon die Grundkenntnisse versucht anzueeignen, allerdings habe ich keinen Überblick über diese Makefiles, Lib und so was.

    Vielleicht findet ja jmd. etwas Zeit dafür, ich wäre echt verdammt dankbar darüber.


    Lg Marcel

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    20.04.2008
    Ort
    Bremen
    Alter
    27
    Beiträge
    85
    Hi,

    mormalerweise sollte das ganz eifnach mit dem Sleep() realisierbar sein.

    Dazu baust du eine Schleife ein und lässt zum Beispiel das Sleep(72) (nach der Formel in der Dokumentation ist das eine Millisekunde) 1000mal durchlaufen schon wartet dein Asuro eine sekunde

    Code:
    int t;
    for (t=0 ;t<1000; t++)
    {
         Sleep (72);
    }
    mfg
    the.speciali

    ps: Sleep() oder sleep() bin mir jetzt nimmer ganz sicher^^

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Nur keine Panik. Es gibt grob drei unterschiedliche Versionen der asuro-Lib: die orginale CD-Lib, die erweiterte Lib ab ca. V2.3 und die aktuelle ab ca. V2.6 (mit vielen Verbesserungen inzwischen V2.8 oder so).

    Bis V2.6 bestand die Lib einfach nur aus den Dateien asuro.h und asuro.c Um eine andere Version zu installieren muss man nur diese beiden Dateien in dem Verzeichniss überschreiben in dem sich das eigene Programm (und das Makefile befindet). Alle Versionen gibt es hier:

    http://sourceforge.net/projects/asuro/files
    (auf AsuroLib klicken um alle Archive anzuzeigen)

    Nach dem Tausch der Dateien sollte man ein Clean und ein MakeAll machen.

    Ich empfehle die Version 2.3 aus folgenden Gründen:

    Sie enthält die sehr praktischen Funktionen Msleep() (Pause in Millisek.), PrintInt() (binäre Werteausgabe) und getTime() (Millisek. seit Systemstart) und ist noch so nahe an der Hardware des asuro um zu erkennen, wie das Zusammenspiel von Soft- und Hardware wirklich funktioniert (oder eben nicht funktioniert:)

    Die aktuelle Lib mit ihren mächtigen Funktionen funktioniert zwar super, hat eine eigene Install-Funktion, verschwendet weniger Speicher im Kontroller und die kleineren Hex-Dateien kann man auch schneller flashen. Aber wie die Funktionen wirklich funktionieren weiß außer ein paar Entwicklern eigentlich keiner genau.

    Ich kann jetzt nicht einschätzen ob dir das wirklich weiterhilft, wenn du nicht klarkommst, frage einfach nach. Dafür ist das Forum übrigends gedacht, du brauchst deshalb keine Entschuldigung oder Rechtfertigung wenn du einen Beitrag schreibst.

    Gruß

    mic

    P.S. Beim asuro ist es ein großes Sleep().

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    03.06.2009
    Ort
    Ludwigshafen
    Alter
    26
    Beiträge
    22
    Hallo,

    also erst mal Dankeschön für eure Antwort.
    Um ehrlich zu sein habe mit irgendwelchen Links gerechnet oder mit Ermahnungen.

    Also ich habe mir die V2.3 auf der genannten Seite runtergeladen und installiert.
    Habe diese dann mit dem vorherigen examples und lib ordner ausgetauscht.

    Daraufhin das Notepad geöffnet und ein testprogramm mit vorhandenen Msleep Funktionen geöffnet. Motortest hieß das glaube ich.
    Allerdings hat dann bloß die Status LED ihre Farbe von grün auf rot gewechselt im Takt, die Motoren im Gegensatz haben rein gar nichts getan.
    Egal, aber wenigstens hat ja die Funktion mit dem Msleep funktioniert.

    Dann habe ich eben dieses Standart-Programm geöffnet

    #include "asuro.h"

    int main(void)
    {
    Init();

    while(1);
    return 0;
    }

    und es kommt folgendes beim Ausführen von make all:

    C:\Dokumente und Einstellungen\Marcel\Eigene Dateien\ASUROROBOTER\ASURO_src\FirstTry>make all
    -------- begin --------
    avr-gcc --version
    avr-gcc (WinAVR 20090313) 4.3.2
    Copyright (C) 2008 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.o test.o asuro.o --output test.elf -Wl,-Map=test.map,--cref -lm
    test.o: In function `main':
    C:\Dokumente und Einstellungen\Marcel\Eigene Dateien\ASUROROBOTER\ASURO_src\FirstTry/test.c:7: undefined reference to `Msleep'
    C:\Dokumente und Einstellungen\Marcel\Eigene Dateien\ASUROROBOTER\ASURO_src\FirstTry/test.c:9: undefined reference to `Msleep'
    make: *** [test.elf] Error 1

    > Process Exit Code: 2


    Was hat das zu bedeuten?
    Jetzt funktioniert gar nichts mehr.
    Sollte ich am Besten ALLES runterwerfen und mir alles neuinstallieren?
    Ich habe bloß die Befürchtnis, dass das dann mit dem Flashprogramm wieder Schwierigkeiten gibt, welches ich nach Langem hin und her funktionstüchtig gemacht habe.

    Wie immer wäre ich dankbar um einen Rat.

    Danke schon mal im Vorraus.

    Lg Marcel

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.167
    Den fehlermeldung sagt es weiss nicht was 'Msleep' ist, weil es bis auf diesen stelle noch nie davon gehört hat. Den code fur Msleep steht im /lib/asuro.c datei, stat dem mappen structur im asurolib_v23.zip datei. Wo hast du diesen dateien un mappen im asurolib-v23.zip ausgepackt/ausgetauscht? Irgend wie ist deiner austauschen der examples und lib dateien schief gegangen.

    Der makefile im asurolib_v23 FirstTry order versucht den lib im folgendem pfad zu finden:

    c:/winavr/avr/lib

    Das nachste steht im FirstTry asurolib-v23 makefile
    # Define directories, if needed.
    DIRAVR = c:/winavr
    DIRAVRBIN = $(DIRAVR)/bin
    DIRAVRUTILS = $(DIRAVR)/utils/bin
    DIRINC = .
    DIRLIB = $(DIRAVR)/avr/lib

  6. #6
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Wenn das Motortestprogramm mit Msleep() fehlerfrei übersetzt wurde scheint die neue Lib (in diesem Verzeichniss) richtig installiert zu sein. Warum aber wird bei diesem Programm:
    Code:
    #include "asuro.h"
    
    int main(void)
    {
    Init();
    
    while(1);
    return 0;
    }
    ein Msleep() angemeckert wo doch offensichtlich keins drin ist? Und noch dazu in den Zeilen 7 und 9, es gibt gar nicht soviele Zeilen. Ich vermute den Hauptfehler beim Gebrauch von Notepad: Speichern vergessen vor dem Kompilieren.

    Mit #include "asuro.c" (in Anführungszeichen) wird diejenige Datei asuro.c zuerst eingebunden die sich im selben Verzeichniss wie das eigentliche C-Programm befindet. Nur wenn sich im selben Verzeichniss keine asuro.c befindet wird der AVR-Pfad durchsucht. Deshalb müssen alle alten Dateien asuro.h und asuro.c in allen Verzeichnissen getauscht (überschrieben) werden. Einen Überblick kann man sich mit der Suchfunktion des Explorers verschaffen.

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    03.06.2009
    Ort
    Ludwigshafen
    Alter
    26
    Beiträge
    22
    Hey hey,

    sry, dass ich mich erst jetzt wieder melde, Schulstress.

    Also ich habe die Nase voll von dem doofen Mist Ding,
    ich mache es jetzt so, ich shcmeiße komplett ALLES was mit Asuro zu tun hat runter, komplett, und dann fang ich von ganz vorne an.

    Könnte mir jmd vll eine Anleitung dafür geben oder einen Rat,
    weil am Schluss habe ich wieder tausende Sachen installiert und nichts passiert.


    Ich benutze zum Flashen die USB Schnittstelle.

    Wäre nett wenn sich jmd dafür Zeit nehmen würde
    und sry für meine Inkompetenz

    Lg Marcel

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    26.10.2005
    Ort
    Eberswalde
    Alter
    37
    Beiträge
    15
    Hallo

    [gefährliches Halbwissen]
    Wenn mich nicht alles täuscht, brauchst du nur 3 Dinge.
    win-avr
    asuro-lib (installer - denn da ist auch schon eine IDE bei)
    das Flashtool
    [/gefährliches Halbwissen]

    Dann (wie ich kürzlich gelernt habe) darauf achten, dass deine Projekte in einem Ordner sind wo kein Leerzeichen im Pfad vor kommt. (Also nicht C:\users\bla blub\ sondern eher C:\users\blablub\ oder ähnliches )
    Welcher COM-Port deinem Transceiver zugewiesen wurde, findest du im Gerätemanager raus.

    so far ello
    Rechtschreib- und Tippfehler sind kein geistiges Eigentum und dürfen frei kopiert und verändert werden.
    http://frankh.h3u.de/gentoo.jpg

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    03.06.2009
    Ort
    Ludwigshafen
    Alter
    26
    Beiträge
    22
    Hey hey,

    danke für deine Hilfe.

    Nun habe ich so gut wie alles runtergeworfen.
    Das flash tool funktioniert einwandfrei, wie vorher auch.

    Jetzt habe ich dieses winavr runtergeladen und im c verzeichnis installiert.

    Habe mir unter eigene Dateien einen Ordner eingerichtet mit den ganzen Sachen vom Asuro.

    Dort ahbe ich auch den entpackten Ordner asurolib_v2.3 gespeichert, dessen beispiel programm first try im notepad geöffnet habe.
    Bei dem mach ich dann "Make" und was kommt:

    -------- begin --------
    avr-gcc --version
    avr-gcc (WinAVR 20090306rc1) 4.3.2
    Copyright (C) 2008 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    make: *** No rule to make target `test.hex', needed by `all'. Stop.

    > Process Exit Code: 2
    > Time Taken: 00:01



    Habe im neuinstallierten Notepad diesen "Make" Befehl so eingerichtet, dass es von dem asurolib_v2.3 Ordner zugreift.
    Das wird wohl auch falsch sein nehme ich an oder?


    Außerdem habe ich an der Lib nich wirklich vioel verändert, versteh nich wo ich was einfügen muss.
    Irgendwie möchte das nich bei mir.

    Lg Marcel

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    13.10.2009
    Beiträge
    13
    Hi wernerlicious,
    bin das erste Mal hier im Forum und hab zufällig gesehen, dass du das gleiche Problem hast, wie ich.
    Die Sleep Funktion geht bei mir nur, wenn ich vorher sei() aufrufe.
    Und PollSwitch funktioniert bei mir nur, wenn ich in der asuro.c den Sleep() Aufruf aus PollSwitch entferne.
    Vielleicht hilft das hier im Forum, die Ursache besser einzukreisen.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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