Forum: Mikrocontroller und Digitale Elektronik Arduino GIGA + GigaDisplay Scala Problem


von Maxim B. (max182)


Angehängte Dateien:

Lesenswert?

Guten Tag!
Ich versuche, meine Programmierkenntnisse zu vertiefen. Dafür spiele ich 
z.Z. mit Arduino GIGA und dazu gehörenden TFT (und Arduino IDE 2.3.8). 
Ziel ist, Lib für Scala zu schaffen.
Scala selbst funktioniert, Problem mit Beziffern. Einfache Zahlen lassen 
sich richtig herausgeben. Aber wenn ich stattdessen bestimmte 
Bezeichnungen wie z.B. "Fis" oder "As" herausgeben möchte, kann ich 
entsprechende String-Array nicht an Structur anbinden. Compiler zeigt 
immer Fehler. Und meine Idee ist, daß alle Daten von Scala 
einschließlich Beschriftung über einen Zeiger auf Structur übergeben 
werden.

*.ino File hier dabei. Includierte farbe16.h Vollständigkeit halber auch 
da.

Zwei Poti werden abgelesen, die Werte werden gezeigt und als Wert für 
drei Scalen benutzt, zwei vertikalen und eine horizontale.

Zweite Frage, die mich interessiert: z.Z. benutze ich Var. uint16_t mode 
und defs, um verschiedene Einstellungen zu machen. Eigentlich wäre es 
besser,  Bitfeld zu benutzen. Aber ich verstehe noch schlecht, wie ich 
Bitfeld zusammen mit der Struktur, aber separat einzelne Bits, 
inizialisieren könnte - damit Init-Einstellungen für mode gut lesbar 
bleiben.

Könnte mit bitte jemand mit Tipps helfen?
Vielen Dank im voraus!
Max.

: Bearbeitet durch User
von Maxim B. (max182)


Angehängte Dateien:

Lesenswert?

So sieht der Bildschirm aktuell aus.
Ich möchte Textzeichenketten anstelle von einfachen Zahlen verwenden und 
diese außerdem in der Struktur jeder Skala deklarieren und 
initialisieren.

von Hans W. (hanswieland)


Lesenswert?

Maxim B. schrieb:
> kann ich entsprechende String-Array nicht an Structur anbinden

Das ist mir unklar. Zeige mal, wie du es (ohne Erfolg) versucht hast.

von Maxim B. (max182)


Angehängte Dateien:

Lesenswert?

Hans W. schrieb:
> Das ist mir unklar. Zeige mal, wie du es (ohne Erfolg) versucht hast.

Nach weiteren Anpassungen in struct und void scala_ziffer(scaladata 
*userscala, uint8_t einaus); scheint es wie gewollt zu arbeiten. Aber 
die Lösung scheint mir unschön zu sein: ich baue Zeilen auseinander nach 
einzelne Buchstaben. Und ich habe gelernt: was in Technik unschön 
aussieht, kann nicht gut sein...

Vielleicht gibt es eine bessere Lösung?
Vor dem ich das in C++ Classe umwandeln beginne, möchte ich das gerne 
schön machen.
Obwohl könnte man wohl auch sagen: es funktioniert und gut so?

: Bearbeitet durch User
von Hans W. (hanswieland)


Lesenswert?

Maxim B. schrieb:
> die Lösung scheint mir unschön zu sein

Ich finde sie OK.

Ich hätte die Skalen als Bild (Bitmap) geladen und dargestellt, und nur 
die Balken zur Laufzeit hinein gemalt. Aber dein Ansatz ist auch OK.

von Maxim B. (max182)


Lesenswert?

Hans W. schrieb:
> Ich finde sie OK.

Danke!

> Ich hätte die Skalen als Bild (Bitmap) geladen und dargestellt, und nur
> die Balken zur Laufzeit hinein gemalt.
Schwer, da Breite und Länge von Scala, Zahl, Länge und Breite von 
Marker, mittlere Marker (oder zwei mittleren, wenn Zahl gerade) dicker 
als andere oder nicht, Marker rechts oder links oder keine, Rahmen 
gezeichnet (und wie dick) oder nicht, die Zeichen gegen Marker oder 
dazwichen, Abstand Text/Rahmen, auch Farbe von Rahmen, Zahlen und Scala 
- alles kann man in Structur einstimmen. Als Bild kaum zu denken: zu 
viele Varianten.

Das wurde als eine universelle Funktion für Scala gedacht. Grundlage 
habe ich noch vor einem Jahr mit einer Platine mit ATmega1284P und 3,5" 
240x320 TFT gemacht. Nun aber für Arduino Giga und systematisch. Aber 
solange das auf C bleibt, weiterhin auch auf Mega problemlos, nur viel 
langsamer. Hier wird Inhalt von drei Scala weniger als in einer ms 
gemacht. Mit Rahmen, Marker und Beschriftung schon ca.25 ms.

Ich möchte noch eine Möglichkeit einführen, außer Adafruit_GFX_Library 
etwas anderes zu benutzen, da Adafruit_GFX_Library Problem mit ÄÖÜß hat. 
Meine Entwicklung ist für Musiker bestimmt, die die fehlende deutschen 
Buchstaben kaum akzeptieren. Früher habe ich das Problem mit eigenhändig 
gemachten Font gelöst, wo eine Zwischefunktion laufend Umkodierung für 
einige Buchstaben machte...
Alle mir bekannten Libs machen notwendige Sachen ähnlich: Rechteck 
x,y,Breite, Höhe und Farbe. Linie x,y,Länge, Farbe. Nur für Text gibt es 
Unterschiede.
Vielleicht am besten mit Zeiger auf Funktion in Structur...

: Bearbeitet durch User
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.