- 12V Akku mit 280 Ah bauen         
Seite 1 von 12 12311 ... LetzteLetzte
Ergebnis 1 bis 10 von 113

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

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

    neue Asuro Lib V2.70 (Release Candidate 3)

    Anzeige

    Praxistest und DIY Projekte
    Hallo Leutz,

    es gibt mal wieder eine neue Version der Asuro Lib. Bevor diese bei Sourceforge erscheint, sollte erst mal eine kleine Betatest Phase hier im RN-Forum erfolgen.

    Es gibt ein paar neue Funktionen und Verbesserungen (vielen Dank an stochri):

    * SetMotorPower Funktion zum gleichzeitigen ändern von Geschwindigkeit und Richtung der Motoren.
    * Sound Funktion zur Sounderzeugung mit den Motoren.
    * SerPrint Funktion zur Ausgabe null-terminierter Strings.
    * Go Funktion mit Distanzparameter in mm.

    Eine Sache bei der Lib macht mir Sorge:

    Der Code wird immer umfangreicher. Da immer alle Funktionen eines Sourcefiles mitübersetzt werden, egal ob sie aufgerufen werden oder nicht, wächst damit auch immer der erzeugte Programmcode. Da der Speicher auf dem mega8 knapp ist, wäre es vernünftiger alle Funktionen in separate Sourcefiles zu packen und daraus eine richtige Library zu erzeugen.

    Kritik und Anmerkungen sind willkommen.

    EDIT rc1:

    Da es scheinbar keine Probleme mit der neuen Lib gibt, hier nun der 1. Release Candidate der Asuro Lib 2.70 zum Download.

    Folgende Änderungen sind inzwischen eingeflossen:

    * Die Asuro.c wurde aufgeteilt in eine Reihe von C-Files. Daraus wurde eine Objekt-Library erstellt.
    * HTML Doku wurde aktualisiert. Jetzt wieder inkl. aller Beispiele.
    * Es werden jetzt neue und alte AVR-LIBC Versionen automatisch erkannt. D.h. es gibt keine Warnungen mehr wegen obsolete Headerfile "signal.h"
    * Funktionen mit Unterstrich in Funktionsnamen wurden umbenannt (Encoder_Init heißt jetzt EncoderInit)
    * Kosmetik: Alle Tabs durch Spaces ersetzt. Klammersetzung nach ANSI Style.
    * Die Lib Funktionen werden jetzt in den C-Files dokumentiert, nicht in der Asuro.h

    EDIT rc2:
    ab sofort steht nun der 2. Release Candidate der Asuro Lib 2.70 zum Download.

    * Alle Funktionen sind nun komplett dokumentiert.
    * eine Bugliste wurde hinzugefügt
    * neue Funktion PrintLong zur Ausgabe von Long Variablen
    * benutzerspezifische Header Datei myasuro.h. Dort werden Konstanten abgelegt, die sich von Asuro zu Asuro unterscheiden (z.B. der Korrektur Wert für die PollSwitch Funktion). Diese Werte werden allerdings noch nicht verwendet.

    EDIT rc3:
    ab sofort steht nun der 3. Release Candidate der Asuro Lib 2.70 zum Download. Erstmalig auch mit einem Setup Programm für Windows mit Installations/Deinstallations Routinen.

    * I2C Funktionen. I2C Master Emulation (Autor raid_ox)
    * LCD Funktionen. LCD Modul Anschluss ueber I2C Port Erweiterungs Chip PCF8574 (Autor raid_ox)
    * RC5 Funktionen. Fernbedienung ueber RC5 kompatibel Fernbedienungen (Autor m.ar.v.i.n)
    * SelfTest Demomode jetzt wieder mit IRDemo und RechteckDemo. Der Demomode startet, wenn nach dem Einschalten eine Taste länger gedrückt und dann losgelassen wurde.
    * teilweise englische Dokumentation (Autoren: MadMan2k, m.ar.v.i.n, raid_ox)

    Da die Files zu groß sind um sie hierzu posten, sind sie auf dem Sourceforge Server abgelegt.
    http://sourceforge.net/projects/asuro

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    23.05.2006
    Beiträge
    62
    Da hast du Recht, eine Library wäre auf jeden Fall sinnvoll (ich arbeite seit ca. einem halben Jahr mit Libraries für den ASURO und den YETI). Als Beispiel, meine Batch-Datei zur Erzeugung meiner YETI Library. Wichtig ist, dass die Object-Datei (*.o), in der sich die main()-Funktion befindet, vorher aus dem Projektordner gelöscht wird. Zur Projekterzeugung benötigt man ja eine main(), da sonst der Compiler meckert, aber in der Library hat die main()-Funktion nichts zu suchen! Beim Erstellen einer Library muss sich jede Funktion in einer eigenen Source-Datei bzw. Object-Datei befinden, da sonst die anderen, nicht benötigten Funktionen, die sich evtl. in der Datei befinden, später in das Projekt mit eingebunden werden! Der Linker bindet immer alle Funktionen die sich in einer Object-Datei befinden mit in das Projekt ein, nicht nur die benötigte/n Funktion/en. Deshalb sollte jede Source-Datei, die für eine Library geschrieben wird, auch nur jeweils eine Funktion beinhalten damit später auch wirklich nur die benötigten Funktionen in das Projekt eingebunden werden!

    REM
    REM ************************************************** **
    REM der Name der Library die erzeugt werden soll
    REM hier libyeti.a (ACHTUNG! .a nicht vergessen)
    REM ************************************************** **
    SET LIBRARY=libyeti.a
    REM
    REM ************************************************** **
    REM der Name der Datei in der sich die main()-Funktion
    REM befindet hier yeti_lib.o (yeti_lib.c)
    REM ************************************************** **
    SET MAIN_FUNKTION=yeti_lib.o
    REM
    REM ************************************************** **
    REM der Name der Dump-Datei für die *.o-Dateien
    REM ************************************************** **
    SET LIBRARY_DUMP=libyeti_obj.dump
    REM
    REM ************************************************** **
    REM alte Library mit del löschen
    REM ************************************************** **
    del %LIBRARY%
    REM
    REM ************************************************** **
    REM die Datei in der sich main() befindet löschen
    REM
    REM A C H T U N G !
    REM
    REM die Library darf keine main()-Funktion enthalten
    REM ************************************************** **
    del %MAIN_FUNKTION%
    REM
    REM ************************************************** **
    REM diese Zeilen erzeugen die Library
    REM Infos zu den Programmen (avr-*) in der Doku zu WINAVR
    REM ************************************************** **
    c:\Winavr\bin\avr-objdump -h *o > %LIBRARY_DUMP%
    c:\Winavr\bin\avr-ar r %LIBRARY% *.o
    c:\Winavr\bin\avr-ar t %LIBRARY%
    REM
    REM ************************************************** **

    Gruß, Peter (Ronny10)

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

    Gestern habe ich die ersten Versuche mit einer Objektcode Library für den Asuro gemacht. Das ganze funktioniert, wie erhofft, wunderbar. Die Codegröße der Beispielprogramme sinkt damit drastisch, nachdem die asuro.c Datei in viele kleine Dateien aufgeteilt wurde und daraus eine Objektcode Library erzeugt wurde.

    Das schöne daran ist, dass man nichts am bestehenden Quellcode ändern muß. Lediglich im Makefile muß statt der asuro.c die libasuro.a dazugelinkt werden. Nach ein paar Aufräumarbeiten werde ich die Lib heute abend dann zum Download freigeben.

    Zu beachten ist aber, wie Ronny10 schrieb, dass man erst alle alten Objekt Files und Depencies Files löscht, bevor man ein bestehendes Projekt damit übersetzt. Nach Änderungen an der asuro.h bzw. den Library Sourcefiles muß die Library natürlich neu erstellt werden und in das AVR lib Verzeichnis kopiert werden. Evtl. sollte man auch besser die asuro.h in das AVR include Verzeichnis kopieren, damit man sich nicht durch inkompatible Versionen Compile Errors einhandelt. Dazu müßte dann aber doch der Quelltext geändert werden. Statt

    #include "asuro.h"

    müßte man dann

    #include <asuro.h>

    schreiben.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.147
    Blog-Einträge
    3
    Hallo Marvin,
    herzlichen Dank für Deinen Arbeitsaufwand. Mich würde mal interssieren, ob die neue Lib schon jemand ausprbiert hat.

    Ich habe mir auch schon mal überlegt, die Funktionen der Asuro-Lib in verschiedene Dateien aufzuteilen, z.B. motor.c serial.c usw.
    Man könnte dann auch ein AVR-Studio Projekt draus machen und die Sache wäre schön modular. Eventuell wäre es aber für Anfänger etwas komplizierter mit Programmers Notepad.

    Soweit erst mal,
    stochri

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    23.05.2006
    Beiträge
    62
    Im AVR-Studio wird im Projekt mit [Project] [Configuration Options] [Libraries] unter Library Directories und [Add] zuerst der Ordner in dem sich die ASURO-Library befindet ausgewählt. Danach wird die ASURO-Library, die jetzt im Fenster Available Link Objects: zusätzlich erscheint, selektiert (Name der Library angeklickt) und mit [Add Library-->] in das Projekt aufgenommen. Im Fenster Link with These Objects: muss dann der Name der ASURO-Library erscheinen! Zum Abschluss mit [OK] bestätigen und die Projekteinstellungen abspeichern.

    Gruß, Peter

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

    wie versprochen folgt jetzt die Asuro Objekt Library ebenfalls als Betaversion. Vom Funktionsumfang entspricht sie der C-Library V2.70. An bestehenden Quellcode muß nichts geändert werden. Lediglich in den Makefiles muß folgende Zeile hinzugefügt werden.

    LDFLAGS += -lasuro

    Dazu ist es notwendig, die Objekt Library \lib\libasuro.a
    in das WinAVR\avr\lib Verzeichnis zu kopieren.
    Ebenso sollte man die Header-Datei \lib\inc\asuro.h in das WinAVR\avr\include Verzeichnis kopieren.

    Muß man Anpassungen an den Lib Sourcefiles oder asuro.h vornehmen, muß anschließend die Lib neu erzeugt werden mit:

    make clean
    make all

    Das kopieren nicht vergessen.

    Es gibt weiterhin die Datei \lib\asuro.c . Diese beinhaltet aber nur noch die Interrupt Funktionen und die Init Funktion. Diese muß also wie bisher mitübersetzt werden. Die Beispiel Makefiles im Ordner examples sind bereits alle entsprechend aktualisiert.

    EDIT:

    Release Candidate 1 der Lib befindet sich am Thread Anfang.

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Tolle Arbeit m.a.r.v.i.n,
    schön sortierte/gruppierte Sourcen.

    Ich hab noch keinen Test gemacht; bisher erst nur einmal in das ZIP geschaut.


    Ist bestimmt noch nicht zu spät: Ein schönes neues Jahr euch allen.
    Lieber Asuro programieren als arbeiten gehen.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.12.2006
    Ort
    Eberbach
    Beiträge
    199
    Hi,
    Zitat Zitat von m.a.r.v.i.n
    Hi,

    wie versprochen folgt jetzt die Asuro Objekt Library ebenfalls als Betaversion.
    ...
    sieht gut aus, werde es gleich mal Testen!

    Aber: die html-Doku ist größtenteils über Board gegangen , da ja nur asuro.c und asuro.h dokumentiert sind.
    Für die finale Distribution bitte auch für die anderen .c-files die Doku erzeugen lassen ...
    Gruß, Hermann.
    myIrAsuro.Bild hier  

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    @HermannSW
    Ja, da muss ich zustimmen, dass die Kommentare mager sind.
    Leider ist das Original ja auch nicht besondes gut kommentiert, so dass man m.a.r.v.i.n hier bestimmt nicht den Schwarzen Peter zuschieben kann.

    Da ich selber immer für viel und aussagekräftige Kommentare bin würde ich mir die Arbeit machen und Kommentare schreiben.

    Wie ist es? Sollen wir das in Angriff nehmen?
    Fragen dazu:
    - Deutsch/Englisch (Ich wäre für Deutsch)
    - Einrücktiefe (Ich bin für 3 Leerzeichen)
    - Was oll in den Kopf?
    - Funktionsname
    - Funktionsbeschreibung
    - In-Parameter mit Wertebereich/Funktion
    - Out-Parameter (haben wir in der Lib nur wenige)
    - Global beeinfluste Variablen
    - Änderungsbeschreibung?
    - Datum, Version, Autor, Beschreibung der Änderung

    Und noch einige offene Punkte.
    Du hast html-Doku angesprochen.
    Da ich keine Ahnung habe, wie man die dann erzeugen könnte, müssten dann wohl noch Steuerelemente in den Kommentar geschrieben werden.
    Wie geht das, was ist da notwendig?

    Auf geht's, nehmen wir m.a.r.v.i.n's Muster und bauen um?
    Sinnvoll, ist es bestimmt, wenn sich m.a.r.v.i.n hier mit Einklinken würde, da er ja schon so ein schönes Packet hat.
    Lieber Asuro programieren als arbeiten gehen.

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.147
    Blog-Einträge
    3
    Da ich keine Ahnung habe, wie man die dann erzeugen könnte, müssten dann wohl noch Steuerelemente in den Kommentar geschrieben werden.
    Hallo Sternthaler,

    das geht automatisch mit Doxygen ( lohnt sich übrigens, sich das mal anzuschauen, habe ich auch erst vor kurzem kennengelernt ). Es müssen nur die Kommentare im Quelltetxt ein bestimmte Form haben. In der alten Lib waren die noch entsprechend formatiert, in der neuen LIB muss das wohl verloren gegangen sein.

    Was die Sprache anbelangt: Deutsch wäre wohl für viele hier besser ( aber vielleicht kann man ja die englischen Kommentare, die es schon gibt, stehen lassen und zusätzlich auch einen deutschen Text hinzufügen ). Aber ich befürchte, dass das Einbinden der neuen Lib schon den ein oder anderen Neuling überfordert.

    Gruss,
    stochri

Seite 1 von 12 12311 ... LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests