neue Asuro Lib V2.70 (Release Candidate 3)
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
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von stochri
schon den ein oder anderen Neuling überfordert.
Mhhmm, ich weiss nicht so recht. m.a.r.v.i.n hat die Datei install.txt angefangen und das ist ja schon ein funktionsfähiger Anfang.
OK, da kann man bestimmt noch dran arbeiten.
Wenn man aber davon ausgeht, dass bis jetzt ja noch nicht allzu viele Leute an der Lib mitgearbeitet haben und somit für die 'Endanwender' der Lib eigendlich nur noch das Kopieren an die richtige Stelle übrig bleibt, denke ich, dass doch auch Anfänger damit zurecht kommen werden.
Nun aber zu meinem ersten Muster aus der zerlegten m.a.r.v.i.n-Lib.
Als Anmerkung vorab:
Ich bin der Haarspalter und habe den angehängten Source nicht nur kommentiert (ganz bestimmt nicht im Sinne von Doxygen; den Hint von stochri habe ich jetzt gerade erst gelesen), sondern auch etwas umformatiert.
- Als erstes habe ich die TAB-Zeichen in BLANKS getauscht, so dass jeder beliebiege Editor einen einheitlich formatierten Text sehen kann.
- Dann habe ich vor die öffneden Klammern ( und [ immer ein Leerzeichen gesetzt.
- Alle Variablen und Funktionen habe ich 'besonders' eingerückt. Dazu folgendes Muster, warum ich das so gemacht habe:
Code:
volatile unsigned char count36kHz;
static unsigned char global_daten1;
unsigned long global_daten2;
char global_daten3 [100];
void funktion (
unsigned int *data)
{
static unsigned char lokal_daten1;
unsigned long lokal_daten2;
char lokal_daten3 [100];
}
static int *andere_funktion (
unsigned int *data,
char steuerung)
{
static unsigned char lokal_daten1;
unsigned long lokal_daten2;
char lokal_daten3 [100];
}
Und nun erst einmal die Datei adc.c als erster Versuch einer Kommentierung.