minifloat hat bereits alles Notwendige gesagt; hier nur nochmal etwas
ausführlicher:
Zunächst einmal kommt es darauf an, auf welche Weise die grafische
Benutzeroberfläche (GUI) programmiert werden kann/muss. Das hängt von
der Library/API ab, die Du dafür verwenden kannst/musst:
FALLS die zur Verfügung stehende Library/API zum Zugriff auf den
Touchscreen ein primitives Widget Toolkit anbietet, kann man die
Benutzeroberfläche vglw. komfortabel so programmieren, wie man auch die
Benutzeroberflächen von normalen PC-Programmen oder Android-Apps
programmiert: man legt z.B. fest "Ich möchte ein Label mit dem Text
"blabla" an dieser Koordinate haben, und einen Button der Grösse x/y an
jener Koordinate." Wenn das Display an einer Stelle berührt wird, wo ein
Button sein soll, dann bekommt das eigene Programm direkt eine
Information geliefert a la "Button gedrückt".
Die es hier jedoch um einen Mikrocontroller geht, ist die
Wahrscheinlichkeit leider sehr hoch, dass die API für den Zugriff auf
den Touchscreen gar kein derartiges high-level GUI Widget Toolkit
anbietet, sondern nur low-level-Routinen für das Display um Linien,
Text, Rechtecke etc. auf das Display zu malen, und weitere
low-level-Routinen für den Touch-Controller, die Dir bei Berühren des
Displays eine X/Y-Koordinate nennen.
In diesem Fall musst Du es low-level so machen, wie minifloat es bereits
knapp skizziert hat:
Angenommen z.B., Du willst einen "Button 1", der button1_width=100 Pixel
breit und button1_height=50 Pixel hoch ist, und dessen linke obere Ecke
sich an der X/Y-Koordinate button1_left=10/button1_top=20 Pixel befinden
soll.
Um den "Button 1" auf dem Display darzustellen, würdest Du dann erst
einmal ein Rechteck an dieser Koordinate und der gewünschten Breite/Höhe
zeichnen. Danach vermutlich noch einen Text als Beschriftung des
Buttons. Wenn nun das Display berührt wird, erhältst Du eine Information
a la "Display an X/Y-Koordinate touch_x=17/touch_y=39 berührt".
Anhand dieser Informationen kann man nun überprüfen, ob diese Koordinate
in den rechteckigen Bereich fällt, der Deinen Button repräsentiert:
1 | if ((touch_x >= button1_left) && (touch_x < (button1_left + button1_width)) && (touch_y >= button1_top) && (touch_y < (button1_top + button1_height))) {
|
2 | // Button 1 wurde gedrückt
|
3 | }
|
Falls Dir diese Art der GUI-Programmierung zu kompliziert ist, dann
könnte es EVENTUELL einfacher und sinnvoller sein, statt eines
gewöhnlichen Touch-Displays ein sogenanntes "NEXTION"-Display zu
verwenden. Bei dieser Art von Display kannst Du die grafische
Benutzeroberfläche mit allen Buttons etc. ganz simpel und komfortabel
mit einem PC-Programm designen; zum Anschliessen des Displays an den
Mikrocontroller wird in diesem Fall dann auch keine endlosen Anzahl von
Pins benötigt; die gesamte Kommunikation zwischen Mikrocontroller und
Display geschieht in diesem Fall via serieller Schnittstelle und
benötigt daher nur 2 Leitungen.
In Anbetracht des Umstandes, dass Du vermutlich noch eher ein Einsteiger
bist, könnte Dir diese Vorgehensweise deutlich leichter fallen. Wenn Du
nach "Arduino NEXTION" googlest, wirst Du auch diverse Tutorials etc.
finden.