- 3D-Druck Einstieg und Tipps         
Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte
Ergebnis 31 bis 40 von 47

Thema: Asuro Lib V2.71 veröffentlicht

  1. #31
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Anzeige

    Praxistest und DIY Projekte
    Hallo inka, hallo m.a.r.v.i.n,
    dann wäre es aber noch interessant zu ermitteln, ob es ausreichen würde NUR die Interrupt-Funktion aus der ultrasonic.c in die asuro.c zu VERSCHIEBEN.

    Also die 'normalen' Funktionen' in der ultrasonic.c lassen, und eben NUR die Interrupt-Funktion in die asuro.c.
    Hierbei muss dann aber auch das Makefile für die LIB angepasst werden, damit die ultrasonic.c dann auch mit in die libasuro.a compiliert wird.

    Wenn das dann funktioniert, sollte man dies in der nächsten Asuro-LIB-Version so aufnehmen.

    Gruß Sternthaler
    P.S.: Ja, die Seite vom ehenkes ist tatsächlich sehr ausführlich. Ist schade, dass er schon lange nicht mehr im Asuro-Bereich 'gesehen' wurde. War immer spannend seine Beiträge zu diskutieren.
    Lieber Asuro programieren als arbeiten gehen.

  2. #32
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.09.2007
    Beiträge
    168

    Re: Asuro Lib V2.71 veröffentlicht

    Zitat Zitat von m.a.r.v.i.n
    [...]
    in den ACR-GCC Lib Ordner. Die Objekt Library (libasuro.a) bleibt nun in dem Verzeichnis in dem sie erstellt wurde und muß nicht mehr ins AVR Lib Verzeichnis kopiert werden, ebnso die Headerdatei asuro.h. In den neuen Makefiles muß jetzt nur noch eine Zeile (LIBPATH) angepasst werden um das Makefile für beliebige eigene Projekte zu verwenden. In der Doku ist das alles (hoffentlich verständlich) erklärt.
    Ich verstehe nicht ganz wo ich den Pfad anpassen muss ...
    Bitte um eine genaue Anleitung ...

    Danke!

  3. #33
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi Sternthaler,

    ist das die ganze timerfunktion?
    -----------------
    ISR(TIMER2_COMP_vect)
    {
    count36kHz++;
    if(!count36kHz) timebase++;
    }
    -----------------
    gruß inka

  4. #34
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo,

    @inka, ja das ist die komplette Funktion. Das kopieren bringt aber wohl nichts.
    Ich habe mir das gestern nochmal angeschaut. Die ultrasonics.c wird ja gar nicht mit in die Lib gelinkt, sondern immer direkt zum Projekt dazugelinkt. Deshalb bruacht da nichts in die asuro.c kopiert werden. Allerdings sind mir zwischen dem Code von e. henkes und dem Code der Asuro LIb einige Unterschiede aufgefallen. Darin liegt wohl der Fehler. Meine US Erweiterung funktioniert leider immer noch nicht (ist zwar kein Kurzschluß mehr, aber auch keinerlei Funktion erkennbar).

    @sternthaler Ich denke ich werde den Programcode von e. henkes unverändert in die Asuro Lib übernehmen.

    @h3llGhost Den Libpath ändert man im Makefile des Projektes. Z.B öffnet man das File Makefile im Ordner examples\FirstTry und suchjt die folgenden Zeilen:
    Code:
    # additional Include path for libraries
    #LIBPATH = C:/ASURO_SRC/AsuroLib/lib
    LIBPATH = ../../lib
    Zeilen mit # (Doppelkreuz) sind Kommentare, werden also beim Erstellen des Projektes ignoriert. Die Zeile
    LIBPATH = ../../lib
    gibt den relativen Pfad zur Asuro Lib an. (Das bedeuted hier: Zwei Verzeichnisse Richtung Rootverzeihnisund dann ins Unterverzeichnis lib wechseln. Dort befindet sich die Asuro lib). Für alle mitgelieferten Beispiele ist das so OK und funktioniert ohne Änderung.
    Um den Pfad zu ändern, weil deine Projekte in einem anderen Verzeichnis, Laufwerk oder so stehen, kannst du dich an der auskommentierten Zeile darüber orientieren.
    #LIBPATH = C:/ASURO_SRC/AsuroLib/lib
    Das ist ein z.B. absoluter Pfad auf das Asuro Lib Verzeichnis. Trotz Windows Umgebung sollte man hier den normalen / (Slash) verwenden nicht den \ (Backslash). Einfach das Makefile aus dem FirstTry Ordner als Vorlage in den eigenen Projekt Ordner kopieren, den Pfad ändern, und übersetzen (mit make) oder dem test_all.bat File (kann man ebenfalls aus dem FirstTry Ordner kopieren).

  5. #35
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi m.a.r.v.i.n,

    evtl ein problem?
    der code von ultrasonic.c habe ich jetzt in der asuro.c drinn, es funktioniert soweit, aber:
    Code:
    #include "asuro.h"
    #include "ultrasonic.h" 
    #include "inka.h"
    
    int main(void) 
    { 
      int abstand; 
      Init();
      WaitforStart();
    
        
      while(1) 
     { 
       
       abstand = Chirp();
       
       StatusLED(GREEN);
    
    if (abstand < 15)
       {
       StatusLED(RED);
       BackLED(ON,ON);
       GoTurn(0, 90, 150);
        }
    else
       {
       StatusLED(GREEN);
       BackLED(OFF,OFF);
       MotorDir(FWD, FWD); 
       MotorSpeed(150, 150);
       }
        
    
     } 
      return 0; 
    }
    der befehl GoTurn funktioniert hier nicht. Er müsste um 90° drehen und weiterfahren, dreht sich aber ständig im kreis...
    Habe ich da wieder was falsches drinn, oder hängt es mit den interrupts zusammen?
    gruß inka

  6. #36
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.064
    achte darauf, interrupts zu aktivieren vorher.. ich meine mich zu erinnern dass die beim ultraschall zeugs manipuliert werden.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  7. #37
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    die interrupts werden doch damit nach beenden des Chirp() wieder aktiviert, oder?
    Code:
    /**
     * restores the hardware after using the Ultrasonic module
     * this function is called automaticly after a Chirp
     */
    void RestoreAsuro(void)
    {
       TCCR2 = (1 << WGM20) | (1 << WGM21) | (1 << COM20) | (1 << COM21) | (1 << CS20);
       OCR2  = 0x91;              // duty cycle for 36kHz
       TIMSK |= (0 << OCIE2);     // OCIE2:  Timer/Counter2 Output Compare Match Interrupt Enable
    
       ADCSRA = (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1); // clk/64
       ACSR  |= (0 << ACIS1);
    
       if(autoencode) 
       {
          EncoderInit();
       }
    
       Sleep(1);
    }
    gruß inka

  8. #38
    Erfahrener Benutzer Begeisterter Techniker Avatar von M1.R
    Registriert seit
    02.06.2007
    Ort
    Freiburg
    Beiträge
    213
    Zitat Zitat von inka
    BackLED(ON,ON);
    GoTurn(0, 90, 150);

    der befehl GoTurn funktioniert hier nicht. Er müsste um 90° drehen und weiterfahren, dreht sich aber ständig im kreis...
    Habe ich da wieder was falsches drinn, oder hängt es mit den interrupts zusammen?
    vielleicht weil sich BackLEDs und Odometrie nicht mieinander vertragen?

    Gruss
    M.

  9. #39
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    habs jetzt noch einmal getestet, auch beim auskomentieren der BackLEDs dreht er nur seine piruetten...
    also werde ich weiterdenken...
    gruß inka

  10. #40
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo inka,

    EncoderInit() muß natürlich auch aufgerufen werden, damit GoTurn funktionieren kann.

Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests