-
        

Ergebnis 1 bis 4 von 4

Thema: Go Funktion nicht Interruptfähig!?

  1. #1

    Go Funktion nicht Interruptfähig!?

    Anzeige

    Hallo alle zusammen!

    Ich bin schon lange stiller leser dieses Forums. Doch heute kam eine Frage auf die sich für mich nicht durch die "Suchen" Funktion klären lässt. Wohlgemerkt zum ersten mal!

    Also nun zum Problem:

    Mein Asuro soll sich innerhalb eines Labyrinthes in "Schritten" fortbewegen. Dazu benutze ich aktuell die "Go(,);" Funktion da diese die Odometrie nutzt.
    Da ich aber um navigieren zu können die Taster abfragen muss benutze ich hierzu die "StartSwitch" Funktion da diese ja einen Interrupt darstellt.

    Wenn mein Asuro nun an eine Wand fährt und die Räder, bei gesetzten Tastern, blockieren bekommt wohl die Go-Funktion keinen Wert für die zurückgelegte Strecke zurück. Der Asuro bleibt einfach stehen ?? Das Programm springt also nicht zur Interrupt Routine für die Schalterabfrage ? Ist dies unvermeidbar oder habe ich da etwas übersehen?

    Vielen Dank schon mal im Vorraus,

    Gruß Arphiba

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Kandel
    Alter
    29
    Beiträge
    1.220
    Sowie ich mich die Interna der RN-Asurolib noch zusammenkratzen kann, mag deren Implementierung nicht mehr als einen ADC-Task, entweder es wird die ganze Zeit der Encoder gepollt, oder du machst andere Dinge, beides zusammen geht aber nicht.
    <Schleichwerbung>Mit der Tiny ASURO Lib funktioniert das was du tun möchtest, du kannst dort den ADC in so ziemlich *jeder* Lebenslage verwenden</Schleichwerbung>

    mfG
    Markus

  3. #3
    Hi Markus,

    ahh das dachte ich mir schon! Danke dafür!
    Ich habe mir gerade deine Tiny ASURO Lib runtergeladen und angeschaut. Doch leider schaffe iche s nicht sie in AVR Studio einzubinden sodas ich auch nur "Self test" oder sonstiges compilieren kann. Zu was für einem Verzeichnis muss ich im Makefile verlinken? Wo mein Projekt liegt? Oder "asuro" und "util"?? Ich bekomme das aus deiner Dokumentation leider nicht rausgelesen.

    Jezt muss ich mal sehen wie ich weitermache. Die Lösung mit der vorherigen Lib ist es wohl eine Funktion zu schreiben die mittels der Odometrie nur gerade fährt... bis eben ein Taster gedrückt wird und den Interrupt auslöst.

    Vielen Danke für deine Mühe!
    MfG

    Arphiba

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Kandel
    Alter
    29
    Beiträge
    1.220
    Zitat Zitat von Arphiba Beitrag anzeigen
    Zu was für einem Verzeichnis muss ich im Makefile verlinken? Wo mein Projekt liegt? Oder "asuro" und "util"?? Ich bekomme das aus deiner Dokumentation leider nicht rausgelesen.
    Ich habe die Bibliothek nie mit AVR Studio verwendet, nach meinem Wissensstand kann man aber im AVR Studio auch Makefiles aufrufen lassen.
    Das Makefile muss im (Wurzel-)Verzeichnis deines Projektes liegen und dann wie folgend modifiziert werden:
    "TARGET" muss auf den Dateinamen der Quelltextdatei gesetzt werden, die die "main"-Funktion enhält. (Quasi das Haupt-Sourcefile) Im Falle meiner Beispiele ist das "main".
    "SRC" muss um deine übrigen Quelltextdateien ergänzt werden.
    "TINYASURODIR" muss auf den Ordner verweisen, in dem "asuro", "util" und, sofern du die Bibliothek in vorkompilierter Form verwendest, auch die "libtinyasuro.a" liegen. Das dortige Makefile dient übrigens zum bauen der Bibliothek und nicht von eigenen Projekten.

    Am Einfachsten startest du, wenn du eines der beiden lib-* Beispiele aus dem "examples"-Ordner kopierst, den Inhalt von "main.c" nach eigenen Wünschen ausprogrammierst und deine zusätzlichen Quelltextdateien dann unter "SRC" im Makefile einträgst. Außerdem muss, wenn du die Kopie nicht gerade in ./examples/ ablegen möchtest, halt "TINYASURODIR" wie oben erwähnt angepasst werden.

    mfG
    Markus

Ähnliche Themen

  1. Funktion wird nicht richtig beendet
    Von kowolfgang im Forum C - Programmierung (GCC u.a.)
    Antworten: 16
    Letzter Beitrag: 31.12.2008, 17:37
  2. Alarm Funktion geht nicht
    Von milanlu im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 20.11.2008, 06:49
  3. Timer-Register mögen Befüllung durch Funktion nicht
    Von stefan_Z im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 06.08.2007, 19:25
  4. Antworten: 2
    Letzter Beitrag: 02.09.2006, 21:28
  5. Odometrie- ich raff die ganze funktion nicht !
    Von kungfuman im Forum Asuro
    Antworten: 8
    Letzter Beitrag: 13.06.2006, 12:08

Berechtigungen

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