Forum: Mikrocontroller und Digitale Elektronik Suche Beispiel oder wenigstens Manual zu Arduino Bibliothek


von Flunder (flunder)


Lesenswert?

Es geht um :
https://github.com/bimac/EEPstore

Könnte glatt von mir sein. Code fertig, Motivation verbraten. Kommentare 
sind was für Weicheier und für eine Anleitung reichts erst recht nicht.

Jetzt bin ich mal in der anderen Rolle. Ich habe das Gefühl, dass diese 
Bibliothek das machen könnte, was ich suche. Leider komme ich nicht 
dahinter, wie ich sie genau benutzen muss, um 2 Werte vom Typ uint16_t 
im Eeprom abzulegen und irgendwann wieder zu bekommen, bzw. um zu 
erfahren, ob das lesen geklappt hat.

von Harald K. (kirnbichler)


Lesenswert?

In https://github.com/bimac/EEPstore/blob/main/src/EEPstore.h 
reinzugucken ist nicht zumutbar?

Das Ding bietet gerade mal drei für Dich nutzbare Funktionen 
("Methoden") an:

getIfValid

getOrSet

set

von Flunder (flunder)


Lesenswert?

Dann leg mal ein Objekt von dem Typ an.....

Und ja, dumm gucken kann ich.

von Mülheim K. (mlheim_k)


Lesenswert?

Habe es nicht runtergeladen/probiert. Wüßte aber nicht, was gegen die 
folgende Anweisung spricht. Hast du sowas bereits probiert? Wenn ja, was 
war die Fehlermeldung?

1
EEPstore<uint8_t> store;

von Thilo L. (bc107)


Lesenswert?

Hmmm, dieser Thread hat das Zeug zum rathole...

Mir geht es oft ähnlich wie dem TO: github-Projekte sind häufig nicht 
viel mehr als einfach nur eine (mehr oder weniger) geordnete Ablage des 
Codes und etwas Text für den Entwickler, gerade genug, damit er sich 
damit zurecht findet.

Natürlich kann man mit endlichem Aufwand die Funktion auch direkt aus 
dem Code herauslesen, aber dann ist der Schritt zur kompletten 
Selbstentwicklung nicht mehr weit. Die allermeisten Autoren haben 
einfach nicht die Fähigkeit (und das stelle ich wertfrei fest), sich in 
den (weniger mit dem Projekt vertrauten) Interessierten hinein zu 
versetzen, und so sieht dann auch das readme aus. Aber echtes Sharing 
von Projekten sollte wesentlich mehr sein als nur die freie 
Verfügbarkeit der Sources.

Beitrag #7875998 wurde vom Autor gelöscht.
von Rainer W. (rawi)


Lesenswert?

Thilo L. schrieb:
> Mir geht es oft ähnlich wie dem TO: github-Projekte sind häufig nicht
> viel mehr als einfach nur eine (mehr oder weniger) geordnete Ablage des
> Codes und etwas Text für den Entwickler, gerade genug, damit er sich
> damit zurecht findet.

Wie sehen denn deine in Github abgelegten Projekte aus. Sind die besser 
dokumentiert, um für andere die Nutzung möglichst einfach zu machen?

von Flunder (flunder)


Lesenswert?

Mülheim K. schrieb:
> Habe es nicht runtergeladen/probiert. Wüßte aber nicht, was gegen die
> folgende Anweisung spricht.
Der Compiler ;-)

> Hast du sowas bereits probiert?
Jetzt ja. Musste ich ja gleich mal ausprobieren.

> Wenn ja, was war die Fehlermeldung?
>
1
Hurz.ino:223:19: error: no matching function for call to 'EEPstore<unsigned char>::EEPstore()'
2
 EEPstore<uint8_t> store;
3
                   ^~~~~
4
In file included from Hurz.ino:5:0:
5
libraries\EEPstore\src/EEPstore.h:38:3: note: candidate: EEPstore<T>::EEPstore(const T&) [with T = unsigned char]
6
   EEPstore(const T &dataRef) : data(dataRef), crc(calcCRC()) {}
7
   ^~~~~~~~
8
libraries\EEPstore\src/EEPstore.h:38:3: note:   candidate expects 1 argument, 0 provided
9
libraries\EEPstore\src/EEPstore.h:36:26: note: candidate: constexpr EEPstore<unsigned char>::EEPstore(const EEPstore<unsigned char>&)
10
 template <class T> class EEPstore {
11
                          ^~~~~~~~
12
libraries\EEPstore\src/EEPstore.h:36:26: note:   candidate expects 1 argument, 0 provided
13
libraries\EEPstore\src/EEPstore.h:36:26: note: candidate: constexpr EEPstore<unsigned char>::EEPstore(EEPstore<unsigned char>&&)
14
libraries\EEPstore\src/EEPstore.h:36:26: note:   candidate expects 1 argument, 0 provided
15
16
Bibliothek EEPstore in Version 1.0.4 im Ordner: libraries\EEPstore  wird verwendet
17
Bibliothek EEPROM in Version 2.0 im Ordner: Nasenbaer\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\EEPROM  wird verwendet
18
exit status 1
19
20
Compilation error: no matching function for call to 'EEPstore<unsigned char>::EEPstore()'

Dann dachte ich, wenn er meint, dann kann er ein Argument haben.
1
uint8_t ee;
2
EEPstore<uint8_t> store(ee);

Damit konnte ich den Compiler aber auch nicht besänftigen. Er meckerte 
weiter :
1
Hurz.ino:224:27: error: 'EEPstore<T>::EEPstore(const T&) [with T = unsigned char]' is private within this context
2
 EEPstore<uint8_t> store(ee);
3
                           ^
4
In file included from Hurz.ino:5:0:
5
libraries\EEPstore\src/EEPstore.h:38:3: note: declared private here
6
   EEPstore(const T &dataRef) : data(dataRef), crc(calcCRC()) {}
7
   ^~~~~~~~
8
Bibliothek EEPstore in Version 1.0.4 im Ordner: libraries\EEPstore  wird verwendet
9
Bibliothek EEPROM in Version 2.0 im Ordner: Nasenbaer\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\EEPROM  wird verwendet
10
exit status 1
11
12
Compilation error: 'EEPstore<T>::EEPstore(const T&) [with T = unsigned char]' is private within this context

von Flunder (flunder)


Lesenswert?

Rainer W. schrieb:
> Wie sehen denn deine in Github abgelegten Projekte aus. Sind die besser
> dokumentiert, um für andere die Nutzung möglichst einfach zu machen?
La Paloma pfeif. Es geht mir in diesem Thread auch nicht darum, auf den 
Entwickler der Bibliothek zu schimpfen.

von Peter D. (peda)


Lesenswert?

Flunder schrieb:
> Leider komme ich nicht
> dahinter, wie ich sie genau benutzen muss, um 2 Werte vom Typ uint16_t
> im Eeprom abzulegen und irgendwann wieder zu bekommen, bzw. um zu
> erfahren, ob das lesen geklappt hat.

Die Lib benutzt get() und put() und baut noch eine CRC drumherum.
D.h. Du must Dir erstmal die EEPROM.h anschauen. Hier ist das schön 
erklärt:
https://docs.arduino.cc/learn/built-in-libraries/eeprom/

get() und put() benötigen eine struct, in der Deine Daten definiert 
sind.

von Rolf (rolf22)


Lesenswert?

Rainer W. schrieb:
> Wie sehen denn deine in Github abgelegten Projekte aus. Sind die besser
> dokumentiert, um für andere die Nutzung möglichst einfach zu machen?

Eins der immer wieder gern gebrachten Argumente. Hört sich in der ersten 
Sekunde gut an, ist aber in Wahrheit einfach nur populistisch.

Man muss nicht vorführen, dass man gut Klavierspielen kann, ja man muss 
überhaupt kein Instrument spielen können, um ein schlechtes Spiel nach 
dem Zuhören kritisieren zu dürfen.

Fakt ist nun mal, dass es nur sehr wenig fähige Informationsvermittler 
gibt, und unter einzelkämpferischen Bastlern noch weniger. Das gilt 
nicht nur für die Elektrotechnik.

von Loco M. (loco)


Lesenswert?

Einfach anwenden, z.B.
1
  uint16_t data;
2
  EEPstore<uint16_t>::set(data,0);

von Peter D. (peda)


Lesenswert?

Die Funktion getOrSet() sieht recht strange aus.
Sie versucht zu lesen, aber wenn die CRC nicht stimmt, überschreibt sie 
gnadenlos den EEPROM mit irgendwas anderem.
In jedem Fall ist danach der Inhalt der struct und das EEPROM identisch, 
sowie die CRC o.k.

von Flunder (flunder)


Lesenswert?

Peter D. schrieb:

> D.h. Du must Dir erstmal die EEPROM.h anschauen. Hier ist das schön
> erklärt:
> https://docs.arduino.cc/learn/built-in-libraries/eeprom/

Da wird in der Headerdatei der Bibliothek gleich ein Objekt der Klasse 
angelegt. Bei der Bibliothek, um die es mir geht, muss man das noch 
selber machen und das ist es ja, woran ich bereits scheitere.

Da kommt das mit dem template<> erst für die Methoden, hier schon bei 
der Klasse.

von Georg M. (g_m)


Lesenswert?

Thilo L. schrieb:
> dann ist der Schritt zur kompletten Selbstentwicklung nicht mehr weit

Und das sorgt für Transparenz und Verständnis.

Beitrag #7876040 wurde vom Autor gelöscht.
von Peter D. (peda)


Lesenswert?

Flunder schrieb:
> Jetzt ja. Musste ich ja gleich mal ausprobieren.

Und jetzt sollen wir alle mal raten, was Du in der Hurz.ino verzapft 
hast?

Ohne CRC:
#include <EEPROM.h>
get() und put()

Mit CRC:
#include <EEPstore.h>
getIfValid() und set()

von Mülheim K. (mlheim_k)


Lesenswert?

> > Mülheim K. schrieb:
> > Habe es nicht runtergeladen/probiert. Wüßte aber nicht, was gegen die
> > folgende Anweisung spricht.
> Der Compiler ;-)

Ja, nach dem absenden erst gesehen, dass der Ctor private ist...
Wollte es dann korrigieren, aber das ging nicht mehr. Dann lief ich in 
die nur alle 30 Minuten Beitragsgrenze für neue Nutzer rein...

Der Vorschlag von Loco M. sollte aber funktionieren.

Um den OT hier weiter anzuregen. Da github allen offen steht und jeder 
ein Projekt forken und verbessern darf, bin ich gespannt, ob ich heute 
Abend einen Pullrequest sehe, der eine kurzes Beispiel hinzufügt. Sollte 
nicht mehr Aufwand sein, als die Tatsache der fehlenden Doku hier zu 
bemängeln. Und im herzen sind wir doch hoffentlich alle Pfadfinder und 
halten uns an deren Statuten.

: Bearbeitet durch User
von Flunder (flunder)


Lesenswert?

Loco M. schrieb:
> Einfach anwenden, z.B.
>
1
>   uint16_t data;
2
>   EEPstore<uint16_t>::set(data,0);
3
>

Genau so funktionierts ! Die Methoden sind wohl so etwas wie static, man 
braucht also kein Objekt anzulegen.

von Flunder (flunder)


Lesenswert?

Peter D. schrieb:
> Flunder schrieb:
>> Jetzt ja. Musste ich ja gleich mal ausprobieren.
>
> Und jetzt sollen wir alle mal raten, was Du in der Hurz.ino verzapft
> hast?
>
> Ohne CRC:
> #include <EEPROM.h>
> get() und put()
>
> Mit CRC:
> #include <EEPstore.h>
> getIfValid() und set()

100 Gummipunkte. Genau richtig geraten. Das zugegeben etwas schräge 
getOrSet() brauche ich nicht. Wird der Autor der Bibliothek für 
irgendwas benötigt haben. Sei ihm gegönnt.

von Thilo L. (bc107)


Lesenswert?

Georg M. schrieb:
> Thilo L. schrieb:
>> dann ist der Schritt zur kompletten Selbstentwicklung nicht mehr weit
>
> Und das sorgt für Transparenz und Verständnis.

Hmmm, das ist jetzt so eine ironische Bemerkung, die total an meiner 
Aussage vorbei geht.
Entwickle ich eine Funktion selbst, weil ich mit dem Verständnis einer 
verfügbaren Lösung nicht zurecht komme, dann steigert das sehr wohl das 
Verständnis - nämlich mein eigenes. Und mehr ist auch nicht der Anspruch 
gewesen. Was die Transparenz angeht, so sehe ich nicht, wo diese zum 
Tragen kommt - ich entwickle meine eigene Lösung und bin happy.

Ganz im Gegensatz dazu haben öffentlich verfügbare Projekte sich schon 
daran zu messen, wie gut sie für die generelle Verdauung seitens Dritter 
geeignet sind. Und daran hapert's eben bei vielen Projekten.

Und um auf einen anderen Reply einzugehen: gerade weil ich weiß, dass 
ich es (z.B. aus Zeitmangel) nicht unbedingt besser machen würde, stelle 
ich keine Projekte in Github (oder sonstwo) ein. Frei nach Ch. Lindner: 
"Lieber etwas garnicht, als schlecht machen."

von Georg M. (g_m)


Lesenswert?

Thilo L. schrieb:
> so eine ironische Bemerkung

Überhaupt nicht ironisch.
Man hat keine fremden "Black Boxes" in seinem Programmcode — daher die 
Transparenz. Und das Verständnis.
Zumindest bei der Programmierung von 8-Bit-Mikrocontrollern sollte es 
durchaus möglich sein. Kein Hexenwerk.

von Gunnar F. (gufi36)


Lesenswert?

Flunder schrieb:
> Ich habe das Gefühl, dass diese
> Bibliothek das machen könnte, was ich suche.

Flunder schrieb:
> Ich habe das Gefühl, dass diese
> Bibliothek das machen könnte, was ich suche. Leider komme ich nicht
> dahinter, wie ich sie genau benutzen muss

lade sie nach ChatGPT hoch und schreibe dazu, er möge sie bitte gut 
kommentieren. Das ist ernst gemeint, auch wenn ich es selbst noch nicht 
probiert habe. Aber das neue VisualStudio mit Copilot kommentiert meinen 
Programmcode noch während ich ihn schreibe erschreckend gut. Ich glaube 
sogar, es passt sich meiner Sprache an. I.E. "das könnte doch glatt von 
mir kommen". Ist es aber nicht!
Oder umgekehrt, ich schreibe erst einen Kommentar, dann einen 
Funktionsrumpf, zack steht da die fertige Funktion. Manchmal daneben, 
manchmal nicht. Erschreckend!

von Peter D. (peda)


Lesenswert?

Flunder schrieb:
> Die Methoden sind wohl so etwas wie static, man
> braucht also kein Objekt anzulegen.

Die Vereinbarung eines Typs ist erstmal nur ein Bekanntmachen für den 
Compiler und belegt daher weder RAM noch Code. Der Compiler weiß 
dadurch, wie er die einzelnen Elemente zugreifen muß und die Größe in 
Bytes. Man kann also Pointer auf beliebige Variablentypen übergeben und 
die EEPROM-Funktionen wissen dadurch, wieviel Bytes sie lesen bzw. 
schreiben sollen.
Ein Pointer auf void ist daher nicht erlaubt.

Beachten muß man aber, daß das Schreiben Zeit kostet, je nach AVR-Typ 
etwa 8ms je Byte. Größere Arrays können also dauern.
Z.B. schreibt man beim ATmega2560 alle 4kB EEPROM, dauert das ~33s.

von Darius (dariusd)


Lesenswert?

Hallo

Thilo L. schrieb:
> Ganz im Gegensatz dazu haben öffentlich verfügbare Projekte sich schon
> daran zu messen, wie gut sie für die generelle Verdauung seitens Dritter
> geeignet sind. Und daran hapert's eben bei vielen Projekten.

Als (fast) reiner Nutzer muss ich der Aussage, besonders eben bei 
Arduinobiblotheken zustimmen.
Selbst in den Anwendungsbeispielen hat man als nicht "Superprofi" oft 
viele Fragezeichen vor sich.
Oft sind die Beispiele zu kompliziert und umfangreich.
Da wird zu viel generelles Wissen vorausgesetzt (gerade für Anfänger 
oder reine Nutzer, die sich ein Sketch für ihr Problem und Anwendung 
"zusammensetzen") und einfach zu viel Funktion in den Beispielen 
hineingequetscht.

Aber nicht nur Arduinobiblotheken sind von diesem Problem betroffen:

Auch eigentlich großartige Programme wie yt-dlp (als Kommandozeilentool) 
werden fast ausschlieslich  mit "Anleitungen" beschrieben, die zwar sehr 
umfangreich, aber weitab des Verständnishorizonts der meisten Nutzer 
sind.

Nein, die Kommandozeile und der "Hemdsärmelige" lässige Umgang damit ist 
eben nicht das Normal und was jeder kann und wo 
"Selbstverständlichkeiten" jeden bekannt sind.

Und auch eigentlich extrem gute und mächtige open source Software 
(Pakete)  werden (zu) oft zuerst mit viel Elan und hineinversetzen in 
den "einfachen" Anwender dokumentiert und mit Anleitungen unterstützt - 
aber im Laufe der Weiterentwicklung, die teilweise über Jahrzehnte geht 
(was sehr gut ist und so manche teure kommerzielle Software und deren 
teure Abokonzepte endlich zum Nogo werden lässt) geht es bei der guten, 
aktuellen und einfach "jetzt" in der aktuellen Programmversion 
zutreffenden Beschreibung schnell begab, werden Neuerungen und 
Umbenennungen nicht eingepflegt oder die Erklärungen und "neue" 
Beispiele werden einfach nur schlechter und unmotivierter hingeklatscht.

Somit werden eigentlich geniale Programme wie Gimp, Lowless Cut, 
darktable,  Libre (open) Office und viele mehr zu Software für "alte 
Hasen" oder Forscher die Spaß und Zeit an immer wieder ausprobieren und 
selbst lernen haben...

Für den Anwender, den es um die eigentlichen Funktionen wie z.B. 
Bildbearbeitung oder Videoschnitt geht, nicht wirklich der sinnvolle 
Weg.

Dass es auch besser geht (wenn aber auch immer noch fernab von optimal - 
es fehlt an >>durchgehenden<< -im Sinne von vormachen-Beispielen von 
verschiedenen Workflows und teilweise an Erklärungen von Begriffen, die 
nichts direkt mit dem Programm zu tun haben wie z.B.  "recusive") zeigt 
die Anleitung von digiKam.

Es ist generell traurig, dass man als reiner Anwender immer auf die 
Arbeit von anderen Anwendern und meist Youtubern hoffen muss, die einem 
am lebenden Objekt zeigen, wie die Software (die Bibliothek, das 
Kommandozeilentool) in der Praxis unter Windows (Mac) genutzt wird.

Bei Gimp klappt das recht brauchbar (aber auch nicht sofort), bei andern 
Programmen eher nicht.

Sehr viel Programmierarbeit und geniale Funktionen, die endlich auch für 
die "Masse" sorgen könnte,  das überteuerte kommerzielle Programme (und 
deren frechen Abokonzepten) verschwinden wird einfach verschwendet.- es 
fehlen (meist) die Anleitungsschreiber, die eben nicht(!) zum 
Programmierteam gehören und möglichst auch nicht(!) mehr als normale 
Anwender von Programmieren, Datenbanken usw. kennen.

: Bearbeitet durch User
von Yalu X. (yalu) (Moderator)


Lesenswert?

Die Klassendeklaration ist gerade mal 40 Zeilen lang und damit auch ohne
Kommentare gut verständlich, wenn man bereits ein paar C++-Grundlagen
beherrscht.

Aber genau da liegt das Problem: Die meisten Arduino-User können kein
C++. Viele wissen nicht einmal, dass sie in C++ programmieren. Es wird
auch einiges unternommen, um die C++Natur des ganzen Systems zu
kaschieren. Bestes Beispiel dafür ist die Dateiendung .ino (statt .cpp,
.cc oder .C).

Da die Arduino-Entwickler nun einmal eine der komplexesten Sprachen als
Basis für ihre Entwicklungsumgebung gewählt haben, muss man halt damit
leben und sich irgendwie in die Grundlagen von C++ einarbeiten. Auf
https://docs.arduino.cc/ (wo man es eigentlich erwarten würde) findet
man leider so gut wie nichts, was einem Anfänger diesbezüglich
weiterhelfen könnte.

Also bleibt einem nichts anderes übrig, als im Netz nach geeigneten
C++-Tutorials zu suchen oder ein C++-Lehrbuch zu beschaffen. Man sollte
diesen Weg aber auf jeden Fall gehen, denn die Kenntnis der wichtigsten
C++-Grundlagen ermöglicht es nicht nur, fremden Code zu verstehen,
sondern etwas komplexeren Code auch selbst zu schreiben.

Danach verliert auch EEPstore.h seinen Schrecken :)

PS: Trotzdem wäre es für den Autor der EEPstore-Klasse IMHO zumutbar
gewesen, zu den drei Funktionen jeweils ein einzeiliges Beispiel zu
liefern und dieses mit einem einzelnen Satz grob zu erläutern. Das hätte
ihn vermutlich nicht mehr als 15 Minuten gekostet.

: Bearbeitet durch Moderator
von Frank O. (fop)


Lesenswert?

Ich vermute einfach mal, dass die in dieser Bibliothek genutzten 
Konstrukte im C++ Kurs auch nicht innerhalb der ersten Woche gelehrt 
werden.

von Darius (dariusd)


Lesenswert?

Hallo

Frank O. schrieb:
> Ich vermute einfach mal, dass die in dieser Bibliothek genutzten
> Konstrukte im C++ Kurs auch nicht innerhalb der ersten Woche gelehrt
> werden.

und

Yalu X. schrieb:
> Aber genau da liegt das Problem: Die meisten Arduino-User können kein
> C++. Viele wissen nicht einmal, dass sie in C++ programmieren. Es wird
> auch einiges unternommen, um die C++Natur des ganzen Systems zu
> kaschieren....

so und jetzt schaue sich der geneigte Bibliothek-Programmierer mal genau 
an, was hinter der ->gesamten(!)<- Arduino Idee steht:

Ein einfaches Werkzeug für Anwender (also einen "nur" angelernter 
"Programmierer") bieten, Laien ein Werkzeug bieten, reinen Nutzern dem 
es nur um die fertige Schaltung / Funktion geht, ein Werkzeug (oder auch 
nur "Copy  Paste Tool") bieten und ähnliches.
Nicht umsonst (siehe auch die ursprüngliche Herkunft und das erste 
Zielpublikum des Arduinogedanken) nennt man in der Arduinowelt die 
Programme (den Sourcecode) halt Sketches => Skizzen.
Skizzen macht man relativ schnell, es sind keine richtigen "Bilder", man 
muss nicht "Kunst studiert" haben  um eine Skizze zu erstellen (fast) 
jeder kann nach kurzer Einarbeitung skizzieren.

Dementsprechend müsste immer (!) die Dokumentation zu Anwendung von 
Bibliotheken sein, muss es immer auch einfache und kurze Beispiele geben 
(die nicht wiederum selbst anspruchsvolle Konzepte und "Tricks" nutzen), 
die langen und Trickreichen für Experten dürfen ja bestehen bleiben, sie 
"dürfen" halt nur nicht alleine vorhanden sein.

Yalu X. schrieb:
> Also bleibt einem nichts anderes übrig, als im Netz nach geeigneten
> C++-Tutorials zu suchen oder ein C++-Lehrbuch zu beschaffen. Man sollte
> diesen Weg aber auf jeden Fall gehen, denn die Kenntnis der wichtigsten
> C++-Grundlagen ermöglicht es nicht nur, fremden Code zu verstehen,
> sondern etwas komplexeren Code auch selbst zu schreiben.

Nein eben nicht - zumindest nicht für die meisten Modellbauer, 
Lichteffekte Fans, Nachbauer usw. - die wollen (zurecht) einfach nur das 
Ergebnis haben und diese eventuell leicht modifizieren bzw. aus 
einzelnen "Blöcken" (und somit Bibliotheken) zusammensetzen.

Die Arduiniowelt ist halt von Grundsatz genau auf so ein Publikum 
ausgelegt.

Das "echte" Programmierer mitspielen können (und letztendlich auch 
"müssen") ist mehr eine Nebenerscheinung.
Wenn sie aber mitspielen, dann müssen sie sich den Gegebenheiten 
anpassen und immer (!) vernünftige, eingängige, gut und verständlich 
dokumentierte Anleitungen zu ihren Bibliotheken mitliefern.

von Georg M. (g_m)


Lesenswert?

> Suche Beispiel

Falsches Forum. Hier werden nur Texte geschrieben.

von Harald K. (kirnbichler)


Lesenswert?

Darius schrieb:
> Dementsprechend müsste immer (!) die Dokumentation zu Anwendung von
> Bibliotheken sein, muss es immer auch einfache und kurze Beispiele geben
> (die nicht wiederum selbst anspruchsvolle Konzepte und "Tricks" nutzen),
> die langen und Trickreichen für Experten dürfen ja bestehen bleiben, sie
> "dürfen" halt nur nicht alleine vorhanden sein.

Ist das Ding, um das es hier geht, offizieller Bestandteil des 
Arduino-Ökosystems?

Nee. Das hat ein wortkarger Florian Rau aus Lissabon auf github 
veröffentlicht.

Wie ist der Threadstarter da überhaupt 'rangekommen?

von Flunder (flunder)


Lesenswert?

Harald K. schrieb:

> Ist das Ding, um das es hier geht, offizieller Bestandteil des
> Arduino-Ökosystems?
Ja

> Nee. Das hat ein wortkarger Florian Rau aus Lissabon auf github
> veröffentlicht.
mööp : nicht nur

> Wie ist der Threadstarter da überhaupt 'rangekommen?
Klickst Du in der IDE links auf den Bücherstapel, scrollst runter bis zu 
besagter Bibliothek und klickst auf "Installieren".

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.