Forum: Mikrocontroller und Digitale Elektronik neue AVR8-Bibliothekensammlung


von daknuett (Gast)


Lesenswert?

Ich schreibe gerade (nebenher) eine Bibliothekensammlung für Atmel's 
8Bit AVR-Familie.

Die Sammlung ist noch sehr klein und in vielen Teilen noch nicht fertig 
(in einigen sogar gar nicht(!)).

Ich will dabei vor allem die Entwicklung von kleineren Projekten 
beschleunigen, d.h. es gibt unter anderem eine Addressierung über 
Pinnummern usw.

Unterstützt werden momentan nur Atmega8(ungetestet) und 
Atmega168(getestet) pinkompatible chips sind leicht hinzuzufügen.

Damit nicht nur ich etwas davon habe wollte ich hier mal bescheid geben, 
vielleicht nützt es jemandem.

Ich freue mich jederzeit über Mitarbeit/PullRequests!

Wichtig ist dabei:

 * Alles muss gcc-kompatibel sein
 * Möglichst weder C++ oder Assembly
 * Änderungen immer kennzeichnen
 * Möglichst generisch halten

Worauf ich nicht geachtet habe:

 * Performance: der Code soll auch lesbar sein
 * Kompatibilität zu anderen Bibliotheken
 * Leider auf Dokumentation, muss ich noch nachholen


mein github: https://github.com/daknuett/avr-stdlib

von Ingo (Gast)


Lesenswert?

Sowas hat man schon erfunden, nennt sich Arduino...!

Mal im ernst, ich habe z.B. für ne Hand voll LCDs n paar Treiber, 
ansonsten schreibe ich die Kernfunktionen immer gern neu. Nur noch 
Stumpf fertige Funktionen zusammen klicken? Wo bleibt da der Spass?

von Dennis S. (eltio)


Lesenswert?

Mhh... auf den ersten Blick dann doch arg durcheinander. Beispiel 
pins.c:
Einmal heißt es "get_pin" einmal "analog_get". Warum nicht einheitlich? 
Manchmal sind die Defines am Anfang der Datei, manchmal mittendrin. 
Generell sieht das nach einer sehr unerfahrenen Arbeit aus..

Gruß

von daknuett (Gast)


Lesenswert?

Ich weiss, dass es Arduinos gibt... ich hab auch ein paar.

Ich habe allerdings schon so viele SOOOO(!!!) schlechte "schnelle" 
Kernfunktionen gesehen.. so Sachen wie
1
#define write_pin13() PORTB |= (1 << PB4)

Es ist auch nicht stumpf zusammenklicken, sondern linken :-P.
(wieso klicken?)

Ausserdem kann ich mir nicht für jedes Experiment gleich alles neu 
schreiben (besonders UART usw.)
Abgesehen davon zwinge ich ja niemanden: Wer nicht will der hat schon. 
Wenns jemandem hilft freuts mich auch.

Aber wie gesagt, wenn bei einem Thread von einem Anfänger jemand anfängt 
mit
1
 #define
, dann sollte man sich schon überlegen.

Ich glaube ich habe gerade angefangen die Preprocessortrolle zu füttern 
:-\.

von daknuett (Gast)


Lesenswert?

Dennis S. schrieb:
> Mhh... auf den ersten Blick dann doch arg durcheinander. Beispiel

Hmm ja. wie gesagt:
> vielen Teilen noch nicht fertig

refactoring usw muss ich halt noch machen.

Wo die defines sind ist nicht irgendwie:
 1. Es sind defines die überall wichtig sind => am Anfang
 2. Es sind defines die local wichtig sind => vor der Aktuellen Funktion
Und wieso?
=> Damit man nicht immer ein Define, das nur einmal (evtl zum 
Verständnis) genutzt wird am Anfang der Datei suchen muss!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.