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
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.
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.

