Forum: Mikrocontroller und Digitale Elektronik Menü/UI-System für grafisches LCD (ARM)


von Johannes M. (Gast)


Lesenswert?

Hallo,

Ich nutze einen ARM Kinetis Cortex-M4 Core mit einem ILI9341-Farb-TFT an 
SPI und habe für das grafische UI bisher meinen eigenen Code gebastelt. 
Da ich jedoch nicht wirklich begabt bin, was die Gestaltung von 
Interfaces betrifft, bin ich auf der Suche nach einer UI-Library die 
möglichst folgendes bietet:

- Externe Schalter an GPIO für Menüführung
- Encoder-Support
- Standard-UI-Elemente wie Labels, Progress-Bars, Listen, Drop-Down 
Boxen
- Elemente wie z.B. Slider oder Drehknöpfe

Gestern habe ich die Suche nach einigen Stunden aufgegeben und habe
das Interface mit FLTK auf einem Raspberry-Pi aufgebaut, welcher dann
über I2C mit dem ARM Kinetis kommuniziert. Ich möchte allerdings von 
dieser
Idee wegkommen, da z.B. die Bootzeiten und extra Hardware wie der 
Raspberry in dem Projekt nicht genutzt werden dürfen.

Ich bin für jede Hilfe / jeden Tipp sehr dankbar!

von Bernd N (Gast)


Lesenswert?


von S. R. (svenska)


Lesenswert?

Wie wäre es mit uGFX (www.ugfx.org)?
Das sollte sich relativ einfach portieren lassen, sofern es noch keinen 
Port dafür gibt.

von W.S. (Gast)


Lesenswert?

Johannes M. schrieb:
> Da ich jedoch nicht wirklich begabt bin, was die Gestaltung von
> Interfaces betrifft, bin ich auf der Suche nach einer UI-Library die
> möglichst folgendes bietet:
>
> - Externe Schalter an GPIO für Menüführung
> - Encoder-Support
> - Standard-UI-Elemente wie Labels, Progress-Bars, Listen, Drop-Down
> Boxen
> - Elemente wie z.B. Slider oder Drehknöpfe

Du wirst dafür nirgendwo etwas finden, denn du wirfst verschiedene Dinge 
in einen Topf.

Also:
1. für den Support irgendwelcher Schalter, Encoder, Touches usw. 
brauchst du Peripherie-Treiber, die passend zum Ereignis eine Botschaft 
kreieren und diese in die Ereignis-Verwaltung eingeben.
So etwa "AddEvent(aEvent: TEvent);"

2. für die Bearbeitung aller möglichen Ereignisse (genauer: Botschaften) 
brauchst du eine Botschaftsverarbeitung, die die hereingetrudelten 
Events verarbeitet (wie auch immer)

3. für die Darstellung von irgend welchen grafischen Dingen brauchst du 
ein GDI, also eine grafische Schnittstelle, die dir Dienste wie Text 
darstellen, Linien zeichnen, Grafiken anzeigen, Flächen füllen usw. 
bietet.

4. für dein eigentliches Vorhaben, eine grafische Oberfläche für deine 
Programme zu haben, brauchst du ne grafische Klassenbibliothek, die 
sowas wie Paneele, Border, statischen Text, Eingabezeilen, Buttons usw. 
bietet und selbige mit der Botschaftenverarbeitung verknüpft, so daß 
deine grafische Oberfläche auf Ereignisse reagieren kann.

5. für deine eigentliche Nutzlast brauchst du Routinen, die mit der 
grafischen Oberfläche derart verknüpft sind, daß all die Reaktionen auf 
Ereignisse, die NICHT innerhalb der Klassenbibliothek erledigt werden, 
in diesen Nutz-Routinen behandelt werden.

Nun hast du nen Eindruck gewonnen, was man so braucht - und daß man all 
diese Teile durchaus völlig separat voneinander schreiben kann. Das 
alles ist im Grunde recht einfach, wenn man das Gesamtproblem in 
sinnvolle Teile zerlegt. Im ganz Kleinen habe ich sowas in der Lernbetty 
schon mal vorgeturnt.

W.S.

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.