Arduino Library für Electronic Assembly DOG Grafik Displays

OP #6007342
Lesenswert?
• ▲
▼
Hallo,

ich habe eine Arduino Library für die Electronic Assembly DOG Grafik 
Displays geschrieben.

Bzw. ich habe die Library, die es vom Hersteller hier 
https://www.lcd-module.com/support/application-note/arduino-meets-ea-dog.html 
gibt, genommen, zusammengefasst, korrigiert und erweitert.

Meine Library gibt es auf github: 
https://github.com/generationmake/DogGraphicDisplay

Sie sollte vom Format auch soweit passen, dass man sie direkt in die 
Arduino-Software einbauen kann und auch die Beispiele an der richtigen 
Stelle erscheinen.

Die Library verwendet den intern Display-Speicher. Somit kann nicht auf 
jedes einzelne Pixel zugegriffen werden, sondern immer nur auf 8 
übereinanderliegende Pixel gleichzeitig und beim schreiben werden dann 
auch immer diese 8 überschrieben. Ich denke, das Prinzip ist bekannt, da 
es bei den meisten einfachen kleinen monochromen Displays so gehandhabt 
wird. Vorteil ist, dass man im Mikrocontroller weniger Speicher benötigt 
und nicht dauernd Daten zum Display gesendet werden müssen. 
Dementsprechend ist auch die Library ausgelegt, dass man nicht in jede 
Zeile schreiben kann, sondern immer nur beginnend bei jeder achten. EA 
bezeichnet das als Page und habe ich in der Library auch so beibehalten.

Meine Ergänzungen haben sich darauf beschränkt, dass ich die Library so 
umgeschrieben habe, dass sie nicht nur mit AVR, sondern zum Beispiel 
auch mit ESP32 oder SAMD controllern funktoniert. Außerdem habe ich die 
bisher getrennten Libraries für DOGM128/DOGM132 und DOGS102 in einer 
zusammengeführt, da die Controller ja sehr ähnlich sind. Schließlich 
habe ich die String-Funktion erweitert, dass der Text zum Beispiel auch 
invertiert oder zentriert dargestellt werden kann. Außerdem kann man bei 
den Strings eine bliebige Position (Offset, positiv, negativ) eingeben, 
sodass man längere Texte horizontal durch das Bild scrollen kann.

Zum Testen habe ich dann auch noch ein Arduino-Shield gebaut, das auch 
mit 3,3V Arduinos kompatibel ist. Die Daten dazu befinden sich hier: 
http://arduhmi.generationmake.de/

Über Kommentare, Anmerkungen und Fragen zur Library würde ich mich 
freuen.

Bernhard
Gast #6011957
Lesenswert?
• ▲
▼
Bernhard M. schrieb:
> Über Kommentare, Anmerkungen und Fragen zur Library würde ich mich
> freuen.

Na gut:

- Eine Klassendefinition sollte einen Konstruktor und einen
Destruktor beinhalten, machen heutige Compiler scheinbar
selbst automatisch ohne äusseres Zutun ... früher wurde
der Programmierer dazu gezwungen (?). Den Konstruktor
(bzw. dessen Aufruf) könnte man dann auch zur Initialsierung
verwenden.

- die Sourcen-Formatierung ist miserabel, Blanks und Tabs
wild gemischt. Eine "anständige" Formatierung hat zwei oder
4 Leerzeichen pro Einrückung, und genau nullkommanull Tabs.
Tabs sind immer scheisse sobald die Öffentlichkeit an einer
Source teilhaben darf. Starke Einrückungen verlangen nach
einem immer breiteren Bildschirm. In der Beschränkung liegt
der Meister.

Besonders "nützlich" sind Tabs bei Funktionsdeklarationen:
1
  void view                (byte direction);

Ist das nicht toll?
OP #6016614
Lesenswert?
• ▲
▼
Guten Abend,

danke für die Anmerkungen.

Ich habe das jetzt soweit eingearbeitet. Alle Tabs sind jetzt durch zwei 
Leerzeichen ersetzt, so wie es bei Arduino üblich ist.

Außerdem habe ich Konstruktor und Destruktor eingebaut. Auch wenn sie 
nicht viel machen und bei Arduino wohl auch nicht so üblich sind.

Dafür habe ich noch eine begin- und eine end-Funktion eingefügt, so wie 
es bei Arduino üblich ist ( 
https://www.arduino.cc/en/Reference/APIStyleGuide ). Die 
initialize-Funktion kann damit wohl mittelfristig ersetzt werden.

Bernhard

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.