- 12V Akku mit 280 Ah bauen         
Seite 1 von 5 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 47

Thema: Asuro Lib V2.71 veröffentlicht

  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

    Asuro Lib V2.71 veröffentlicht

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen,

    heute wurde endlich mal wieder eine neue Version der Asuro Lib veröffentlicht und steht ab sofort zum Download auf Sourceforge bereit.

    An der Bibliothek selbst wurde nicht sehr viel geändert:
    * Pfadangaben in Makefiles wurden vereinfacht (Autor: m.a.r.v.i.n)
    * Projekt Files für AVR Studio und Programmers Notepad kamen dazu (Autor: m.a.r.v.i.n)
    * PrintFloat Funktion kam dazu (Autor: M1.R)
    * Unterstützung der Ultraschallerweiterung (Autor: dopez)
    * kleinere Bugfixes (Variablen volatile gemacht, falls diese in
    Interruptfunktionen verändert werden) (Autoren: Sternthaler, m.a.r.v.i.n)

    Das Hauptproblem, die Installation, mit der sich viele Nutzer in der Version 2.70 rumplagen mußten, sollte nun deutlich einfacher sein.
    So entfällt das kopieren der erzeugten Asuro Objekt Library
    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.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo m.a.r.v.i.n
    klasse, neue Verion ist immer gut.

    Hier noch ein paar Kleinigkeiten, die auch geändert wurden:
    * SerWrite() schaltet den Sender zum Schluß aus um Strom zu sparen.
    * UartPutc() schaltet den Sender zum Schluß aus um Strom zu sparen.
    Folgende Funktionen profitieren davon:
    * SerPrint() aus print.c
    * PrintLong() aus print.c
    * PrintInt() aus print.c
    * PrintFloat() aus printf.c

    * Go()
    * Turn()
    wurden ersetzt durch GoTurn() um Code zu sparen.
    Go() und Turn() sind aber weiterhin nutzbar über Macros.

    Und auch von mir nochmal der Hinweis:
    Die HTML-Startseite zur Asuro-LIB ist sehr lesenswert.
    Hier findet ihr alle Informationen zum erfolgreichen Installieren und Inbetrieb nehmen der Lib.

    Gruß Sternthaler
    Lieber Asuro programieren als arbeiten gehen.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi allerseits,
    habe noch gar nicht alles durchgeschaut, danke fürs PrintFloat M1R...

    die installation habe ich mir recht einfach gemacht: die neuen datein in die alten ordner (nach einer datensicherung) verschoben und die alten überschrieben, somit passen alle eingestellten pfade...

    alles andere kommt noch
    gruß inka

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.147
    Blog-Einträge
    3
    * Go()
    * Turn()
    wurden ersetzt durch GoTurn() um Code zu sparen.
    Nein Ein Tiefschlag für mich .....

  5. #5
    Erfahrener Benutzer Begeisterter Techniker Avatar von M1.R
    Registriert seit
    02.06.2007
    Ort
    Freiburg
    Beiträge
    213
    Zitat Zitat von inka
    danke fürs PrintFloat M1R...
    keine Ursache!
    Ich freue mich, dass die Funktion in der lib aufgenommen wurde.
    Bei der Gelegebheit möchte ich mich ganz herzlich bei allen Machern der lib für die viele Mühe bedanken!
    Insbesondere für Anfänger wie mich erleichtert die lib die Programmierung des ASURO erheblich.
    Gruss
    M.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    04.04.2005
    Ort
    Hamburg
    Alter
    36
    Beiträge
    826
    Hehe Stochri! Das seh ich genauso! Hatte mich in den beiden einzelnen Funktionen ja auch verewigt

    So, ich schau mal hier auch wieder in die neue Lib, da bei mir auch grade der Asuro wieder mal aktuell wird, da ich ein Projekt damit vorhab.

    mfg
    Andun
    www.subms.de
    Aktuell: Flaschcraft Funkboard - Informationssammlung

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo stochri,
    Zitat Zitat von stochri
    Nein Ein Tiefschlag für mich .....
    Nix Tiefschlag, gute Funktionen schaut man immer wieder gerne an. Dann kommt man ab und zu auf so 'wagemutige' Änderungen.

    Ich nutze sie jedenfalls sehr gerne, auch mit deiner Änderung Andun

    @M1.R
    Ich denke, dass dein 'Ersatz' für fmod() auch noch in die Lib rutschen wird.
    Im Übrigen darfst du die Betonung von 'Anfänger' locker weg lassen.

    Gruß Sternthaler.
    Lieber Asuro programieren als arbeiten gehen.

  8. #8
    Erfahrener Benutzer Begeisterter Techniker Avatar von M1.R
    Registriert seit
    02.06.2007
    Ort
    Freiburg
    Beiträge
    213
    Zitat Zitat von Sternthaler
    Ich denke, dass dein 'Ersatz' für fmod() auch noch in die Lib rutschen wird.
    Du meinst meine Restberechnung, oder?
    Hier ein Testprogramm mit zwei Vorschlägen:
    Code:
    //------------------------------------------------------------------
    // test_rest
    // vergleich eigene funktionen und fmod
    // restfunktionen für uint16_t und für int16_t
    //------------------------------------------------------------------
    
    #include <math.h>
    #include "asuro.h"
    
    //------------------------------------------------------------------
    // Restberechnung für Zahlen zwischen 1 und 65535
    
    uint16_t RestUint(uint16_t dividend, uint16_t divisor)
    	{
    		uint16_t rest;
    
    		if (divisor != 0)
    			{
    				rest = dividend - (dividend/divisor * divisor);
    			}
    		else
    			{
    				SerWrite ("ERROR! ", 7);
    				rest = 0;
    			}
    		return (rest);		
    	}
    
    //------------------------------------------------------------------
    // Restberechnung für Zahlen zwischen -32768 und 32767
    
    int16_t RestInt(int16_t dividend, int16_t divisor)
    	{
    		int16_t rest;
    
    		if (divisor != 0)
    			{
    				rest = dividend - (dividend/divisor * divisor);
    			}
    		else
    			{
    				SerWrite ("ERROR! ", 7);
    				rest = 0;
    			}
    		return (rest);		
    	}
    //------------------------------------------------------------------
    
    void PrintUint (uint16_t wert)
    {
      char text [12];                       
    
      ltoa (wert, text, 10);
      SerPrint (text);
    }
    
    //------------------------------------------------------------------
    void PrintRestUint (uint16_t dividend,uint16_t divisor)
    {
    float fmodrest;
    uint16_t rest;
    
    rest = RestUint(dividend,divisor);
    fmodrest = fmod (dividend, divisor);
    
    PrintUint (dividend);
    SerWrite ("/", 1);
    PrintUint (divisor);
    SerWrite ("=", 1);
    PrintUint (dividend/divisor);
    SerWrite ("  ", 2);
    PrintUint ((dividend/divisor)*divisor);
    
    SerWrite ("  rest: ", 8);
    PrintUint (rest);
    SerWrite ("  fmod: ", 8);
    PrintFloat (fmodrest, 5, 2);
    SerWrite ("\r\n", 2);
    }
    
    //------------------------------------------------------------------
    void PrintRestInt (int16_t dividend,int16_t divisor)
    {
    float fmodrest;
    int16_t rest;
    
    rest = RestInt(dividend,divisor);
    fmodrest = fmod (dividend, divisor);
    
    PrintInt (dividend);
    SerWrite ("/", 1);
    PrintInt (divisor);
    SerWrite ("=", 1);
    PrintInt (dividend/divisor);
    SerWrite ("  ", 2);
    PrintInt ((dividend/divisor)*divisor);
    
    SerWrite ("  rest: ", 8);
    PrintInt (rest);
    SerWrite ("  fmod: ", 8);
    PrintFloat (fmodrest, 5, 2);
    SerWrite ("\r\n", 2);
    }
    //------------------------------------------------------------------
    
    int main(void)
    {
    Init ();
    
    StatusLED(YELLOW);
    
    SerWrite ("RestUint:\r\n", 11);
    
    PrintRestUint (100, 6);
    PrintRestUint (100, 0);
    PrintRestUint (12345, 233);
    PrintRestUint (32767, 12345);
    PrintRestUint (65535, 123);
    PrintRestUint (123, 1234);
    
    SerWrite ("RestInt:\r\n", 11);
    
    PrintRestInt (100, 5);
    PrintRestInt (100, 0);
    PrintRestInt (12345, 233);
    PrintRestInt (32767, -12345);
    PrintRestInt (-32768, 539);
    PrintRestInt (-345, -123);
    PrintRestInt (123, 1234);
     
    //------------------------------------------------------------------
    StatusLED (RED);
    BackLED (ON, ON);
    while (1);
    return 0;
    }
    Gruss
    M.

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo M1.R,
    Ja, genau so etwas hatte ich gemeint.
    Da ich gestern/heute aber erst gegen 4:30 in Bett kam, werde ich mir das etwas später mal genauer ansehen.

    Gruß Sternthaler
    Lieber Asuro programieren als arbeiten gehen.

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    17.02.2007
    Alter
    37
    Beiträge
    49
    Eine Frage zur neuen Lib.
    Laut "Mehr Spaß mit ASURO Band2" gibt es eine EEPROM.h
    Diese sollte ja eigentlich auch in der neuen Lib. sein, oder?
    Dort sollte es die Befehle:
    eeread
    eewrite
    eepromread_word
    eepromwrite_word
    ....
    geben.
    Beim Compilieren kommt jedoch: Funktion nicht gefunden.
    Wo befindet sich diese oder durch was wurde sie ersetzt.

    Gruß NomiS

Seite 1 von 5 123 ... LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test