- SF800 Solar Speicher Tutorial         
Seite 4 von 12 ErsteErste ... 23456 ... LetzteLetzte
Ergebnis 31 bis 40 von 113

Thema: neue Asuro Lib V2.70 (Release Candidate 3)

  1. #31
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.12.2006
    Ort
    Saarland
    Alter
    44
    Beiträge
    314
    Anzeige

    Praxistest und DIY Projekte
    Hallo

    Will jetzt auch die neue Lib verwenden nur leider blicke ich da nicht so ganz durch hab mir jetzt den ordner geladen, Dann habe ich das gemacht was im txt bei installer steht Zur Installation der Asuro Lib kopiert man das File \lib\libasuro.a
    in das WinAVR\avr\lib Verzeichnis.
    Das File \lib\inc\asuro.h kopiert man in das WinAVR\avr\include Verzeichnis.
    wo ich jetzt nicht durchblicke ist das: Um die Lib neu zu übersetzen startet man den Make Prozess im Verzeichnis lib mit:
    make clean
    make all
    wie muss man das machen??? muss ich die einzelden dateien auch im Winavr ordner kopieren? Bitte helf mir einer

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

    Zitat Zitat von Danjo00
    wo ich jetzt nicht durchblicke ist das: Um die Lib neu zu übersetzen startet man den Make Prozess im Verzeichnis lib mit:
    make clean
    make all
    wie muss man das machen??? muss ich die einzelden dateien auch im Winavr ordner kopieren? Bitte helf mir einer
    Die Lib muß nur neu erzeugt werden, wenn an den Sourcefiles der LIB oder der asuro.h etwas geändert wurde.
    Die Sourcefiles braucht man dazu nicht kopieren. Man öffnet eine DOS-Console (Eingabeaufforderung) und wechselt in das Verzeichnis, in die man die Lib installiert hat. Dort gibt man die beiden Befehlen ein:
    make clean
    make all
    Dannach kopiert man die geänderte Lib libasuro.a in das WinAVR/lib Verzeichnis und evtl. die asuro.h in das WinAVR/include Verzeichnis.

    Im nächsten Release Candidate wird es dafür ein Installtions Skript geben. Das wird dann einfacher.

    Es wird außerdem noch folgende Änderung in der Lib geben:

    Derzeit befinden sich im Sourcecode einige Konstanten oder feste Zahlenwerte, die von ASURO zu ASURO abweichen können. Diese werden aus der Lib entfernt und durch Variablen ersetzt. Diese Variabeln werden dann zur Laufzeit entweder mit Konstanten (aus einer Benutzerspezifischen Headerdatei), evtl. auch aus dem EEPROM oder halt mit Defaultwerten initialisiert.
    Damit ist die Lib für alle ASUROs gleich und muß beim Anpassen dieser Werte nicht neu übersetzt werden.

  3. #33
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.11.2006
    Ort
    Hamburg
    Alter
    35
    Beiträge
    184
    Ich würde statt Batterie und OdometrieData, Battery und OdometryData schreiben
    Gruß Raid

    Der ^^ Mann

  4. #34
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    Dann wäre das aber nicht mehr im Einklang mit der Anleitung, und ausserdem funktionieren dann alle älteren Programme, die mit der alten library erstelt worden nicht mehr bzw. lassen sich nicht mehr kompilieren.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  5. #35
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.11.2006
    Ort
    Hamburg
    Alter
    35
    Beiträge
    184
    Wird es wirklich nur die benutzte funktionen oder die benutzte c dateien kompiliert ???

    Edit: ich hab versuch ein datei zu kompilieren. mit asurolib ist die hex file 6kb groß und mit meiner (eigenen) bibliothek 3kb. Es scheint dass es noch nicht optimal ist .
    Gruß Raid

    Der ^^ Mann

  6. #36
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    vor allem wenn man bedenkt dass der asuro nur etwa 7 kb speicher hat... wobie das, was am ende geflasht wird, etwak leiner ist als die hex-datei.

    die lib von peter fleury braucht etwa 500 bytes.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  7. #37
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.11.2006
    Ort
    Hamburg
    Alter
    35
    Beiträge
    184
    Vielleicht sollen wir zusätzlich noch die asuro.h zerlegen. Außerdem könnte man auch noch print.c zerlegen, da diese datei so viel unnötige funktionen beinhaltet.
    Gruß Raid

    Der ^^ Mann

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

    Wird es wirklich nur die benutzte funktionen oder die benutzte c dateien kompiliert ???
    wird eine Funktion aus einer c-Datei aufgerufen, werden auch alle anderen Funktionen aus der gleichen c-Datei mitgelinkt, leider.

    Die asuro.h zu splitten bringt da gar nichts. Wenn schon, dann muß man die c-Files wie z.B. die print.c noch stärker splitten.

  9. #39
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.12.2006
    Ort
    Eberbach
    Beiträge
    199
    Hallo,
    Zitat Zitat von m.a.r.v.i.n
    ...
    wird eine Funktion aus einer c-Datei aufgerufen, werden auch alle anderen Funktionen aus der gleichen c-Datei mitgelinkt, leider.
    muß heißen "aus der gleichen .o-Datei".

    ..., dann muß man die c-Files wie z.B. die print.c noch stärker splitten.
    um die Dateien nicht beliebig zu zerkleinern, und damit auch den Überblick zu verlieren, könnte man die einzelnen Funktionen (in encoder.c gibt es sogar 6) mittels #ifdef/#endif's klammern.
    Nun muß nur das Makefile angepaßt werden, um für jede einzelne Funktion (dieselbe) .c-Datei mit verschiedenen -Ddefine's in verschiedene .o-Dateien zu übersetzen (aus encoder.c würden dann 6 verschiedene .o-Dateien).
    Dies hätte den gewünschten Vorteil (nur eine Funktion pro .o-Datei), ohne die Quelldatei-Struktur völlig über den Haufen zu werfen.
    Gruß, Hermann.
    myIrAsuro.Bild hier  

  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
    Hi,

    Asuro Lib V2.70 Release Candidate 2 steht zum Download bereit (siehe 1. Posting). Auch die Doku dazu. Alle Funktionen sind jetzt vollständig dokumentiert und mit Beispiel Code versehen.

    Aufregende neue Funktionen gibt es nicht. Zur Diskussion stellen möchten wir aber folgendes:

    Derzeit befinden sich einige Zahlen (magic numbers) in der Lib, die sich leider von Asuro zu Asuro unterscheiden. Sowas sollte nicht in der Lib stehen. Deshalb der Vorschlag,
    * diese Zahlen Konstanten aus der Lib zu entfernen,
    * in eine Userspezifische Header-Datei packen,
    * statt der Konstanten Variablen zu benutzen
    * und diese Variablen zur Laufzeit mit den userspezifischen Konstanten zu laden.

    OK, dadurch gehen erst mal wieder ein paar Bytes vom RAM verloren. Auch das laden der Variablen kostet Speicher. Dafür hat man dann aber eine Lib, die für alle Nutzer gleich ist. Bei einem Update gehen die Userspezifischen Werte nicht verloren. Evtl. könnte man diese Werte auch in den EEPROM des Asuros flashen und zur Laufzeit dann auslesen.

    Wie das aussehen könnte, ist in der Datei myasuro.h zu sehen. Dort stehen diese Werte drin. Allerdings werden die Werte derzeit noch nicht verwendet.

    Code:
    /* Tastaturabfrage */
    #define MY_SWITCH_VALUE           61L   /*!< Multiplikator fuer Tasterwerte */
    
    /* Odoemtrie / Encoder */
    #define MY_ODO_LIGHT_VALUE_L     160    /*!< Encoderschwellwert fuer Hell (linke Seite) */
    #define MY_ODO_DARK_VALUE_L      140    /*!< Encoderschwellwert fuer Dunkel (linke Seite) */
    #define MY_ODO_LIGHT_VALUE_R     160    /*!< Encoderschwellwert fuer Hell (rechte Seite) */
    #define MY_ODO_DARK_VALUE_R      140    /*!< Encoderschwellwert fuer Dunkel (rechte Seite) */
    
    /* Werte für 12 Segmente Encoder */
    #define MY_GO_ENC_COUNT_VALUE  19363L   /*!< GO Funktion, Divisor fuer Entfernung   */
    #define MY_TURN_ENC_COUNT_VALUE  177L   /*!< Turn Funktion, Mutiplikator fuer Winkel */
    Dazu gibt es dann auch eine Struktur von Variablen. Dort werden dann die Werte zur Laufzeit eingetragen. (Dank an sternthaler)

    Bitte stört euch nicht daran, das hier long Variablen verwendet werden. Das soll nur zur Übersicht dienen. In der nächsten Release werden die Variablen soweit möglich zusammengeschrumpft.

    Code:
    /*
      Aufbau der Datenstruktur fuer die Asuro-typischen Parameter die jeder User
      fuer seinen Asuro in der Datei myasuro.h selber aendern kann.
     */
    typedef struct {
      /*! Faktor zur Berechnung der gedrueckten Tasten.\n
          Kann von jedem Asuro-Besitzer in myasuro.h angepasst werden.\n
          Der Originalwert ist \b 61L und koennten im Bereich zwischen ca. 58L und
          65L schwanken. Dieser Wert gleicht Toleranzen der Wiederstaende an den
          Tastern aus.
      */
                long  switch_value;
      /*! Wert, der in der Odometrie ueberschritten werden muss, um zum
          weiterzaehlen der Ticks in encoder[] zu fuehren bei aktivierter
          Automatik\n
          Kann von jedem Asuro-Besitzer in myasuro.h angepasst werden.\n
          Die Originalwerte (links, rechts) sind \b 160.
          Diese Werte sind sehr stark vom Umgebungslicht abhaengig.
          Sie MUESSEN GROESSER als die Werte fuer odo_dark_value sein.
      */
      unsigned  int   odo_light_value[2];
      /*! Wert, der in der Odometrie unterschritten werden muss, um zum
          weiterzaehlen der Ticks in encoder[] zu fuehren bei aktivierter
          Automatik\n
          Kann von jedem Asuro-Besitzer in myasuro.h angepasst werden.\n
          Die Originalwerte (links, rechts) sind \b 140.
          Diese Werte sind sehr stark vom Umgebungslicht abhaengig.
          Sie MUESSEN KLEINER als die Werte fuer odo_dark_value sein.
      */
      unsigned  int   odo_dark_value[2];
      /*! Faktor zur Berechnung von Ticks um aus den in mm angegebenen Parameter
          umzurechnen.\n
          Kann von jedem Asuro-Besitzer in myasuro.h angepasst werden.\n
          Der Originalwert ist \b 19363L und ist von der Anzahl der schwarz/weiss
          Teilstuecke auf den Odometriescheiben abhaengig.\n
          Der Originalwert wurde durch stochri ermittelt.
      */
      unsigned  long  go_enc_count_value;
      /*! Faktor zur Berechnung von Ticks um aus den in Grad angegebenen Parameter
          umzurechnen.\n
          Kann von jedem Asuro-Besitzer in myasuro.h angepasst werden.\n
          Der Originalwert ist \b 177L und ist von der Anzahl der schwarz/weiss
          Teilstuecke auf den Odometriescheiben abhaengig.\n
          Der Originalwert wurde durch stochri ermittelt.
      */
                long  turn_enc_count_value;
    } my_t;
    extern volatile my_t my;
    Ich denke was die Codegröße betrifft, sind wir auf dem richtigen Weg. Ein paar c-Files werden nocht gesplittet (motor.c encoder.c). Selbst der SelfTest Code ist inzwischen mit der neuen Lib nicht größer als mit der Original Lib (auch wenn ich die IRDemo und die RechteckDemo wieder dazu packe).

    Hier noch ein Ausblick, was die die nächste Release enthalten wird:

    * Verwendung der userspezifischen Werte. Beispiele, die diese Werte automatisch ermitteln können.
    * I2C und LCD Library von raid_ox
    * RC5 Decoder Funktion für Infrarot Fernbedienungen
    * bessere und erweiterte Beispiele
    * ...

Seite 4 von 12 ErsteErste ... 23456 ... LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress