Problem mit "ts.getPoint()" in Switch/Case Anweisung

Hallo zusammen,

derzeit versuche ich mich das erst Mal an einem Touchscreen.

Ich versuche gerade verschiedene Menüs aufzubauen, über das Hauptmenü hinaus bin ich nicht gekommen, ich mach seit Tagen an einem Problem rum, jetzt muss ich mich an euch wenden.

Ich versuche die Menüführung mit einer Switch/Case Anweisung aufzubauen, beim Drücken entsprechender Schaltflächen wird eine Nummer übergeben, mit der dann der entsprechende Case aufgerufen werden soll.

Es ist so, dass nach dem Begrüßungsbildschirm (Case 0) das Hauptmenü aufgerufen wird. Dort sind die ersten Schaltflächen programmiert gewesen.

Jetzt habe ich das Problem, dass die nachfolgenden Cases gar nicht aufgerufen werden, obwohl die Nummer aktiv ist.
Schuld ist die "ts.getPoint()" Anweisung in Case 1 (Hauptmenü). Diese Anweisung, so kommt es mir vor, beendet die Switch Anweisung vorzeitig, so dass die nachfolgenden Cases wirkungslos sind.
Kommentiere ich diese Zeile aus, funktioniert alles.

Ich habe den abgespeckten Sketch angehängt, ihr könnt euch selbst davon überzegen. Eigentlich sollte das Programm nach Case 0, Case 1 ins den Case 2 springen.
Dies macht er aber nur, wenn die "ts.getPoint()" Anweisung auskommentiert ist.

Ich weiß, der Fehler sitzt vor dem Monitor, aber was mache ich falsch ?

Würde mich über eine Antwort sehr freuen....

Gruß Hayabalooza

Test_Switch_Case.ino (3.22 KB)

hayabalooza:
Dies macht er aber nur, wenn die "ts.getPoint()" Anweisung auskommentiert ist.

Ich weiß, der Fehler sitzt vor dem Monitor, aber was mache ich falsch ?

Ich glaube nicht, dass der Fehler vor dem Monitor sitzt. Es sei denn, Du meinst den Monitor dessen, der getPoint() programmiert hat. Du solltest eher dort (in der Definition der Methode) nach dem Fehler suchen.

Könntest Du einen Link auf eine passende Datei bei github oder sonstwo liefern?

Gruß

Gregor

hayabalooza:
Eigentlich sollte das Programm nach Case 0, Case 1 ins den Case 2 springen.

Ich sehe überhaupt nicht, dass Du die Variable nMenu da entsprechend setzt. Die wird nur im case0 auf 2 gesetzt, und das wars. Wie soll er da jemals überhaupt in case 1 springen?

N.B. Du solltest für die cases sprechende Namen vergeben, und nicht einfach nur Nummern. Das macht es wesentlich einfacher, den Switch zu verstehen.

Edit: und noch etwas ist mir aufgefallen. Wie ist denn dein Display angeschlossen. Es kann ja eigentlich nicht sein, dass Du für den Touch und für die Read/Write Schnittstelle des LCD die selben Pins verwendest:

 #define YP A3  // must be an analog pin, use "An" notation!
#define XM A2 // must be an analog pin, use "An" notation!
...
#define LCD_CS A3
#define LCD_CD A2

Hallo,

vielen Dank für eure Antworten...

Hach Ja, der angehängte Sketch wurde von mir abgespeckt, der Übersicht halber auf das Wesentliche reduziert.
War von mir falsch beschrieben sorry, die ursprüngliche Funktion war so wie im Start-Thread beschrieben.

Ändert aber nichts an der Tatsache, dass ab der Zeile, in der die Funktion "ts.getpoint" aufgerufen wird, alle nachfolgenden Cases ausgeschlossen werden.
Ich denke, da wird auch ein anderer Aufruf anhand Namen nichts daran ändern.

Bezüglich der Konfiguration der E/A´s, muss ich zu meiner Schande gestehen, dass ich mir das noch nicht genauer angesehen habe. Ich habe aus verschiedenen Beispielen zusammenkopiert.

Es hat bisher auch alles funktioniert, Darstellung von Text, Frames und die Rückmeldung der Koordinaten beim Drücken.

Es ist ein Touchscreen von Makerfactory mit einem 9241 Treiber.

hayabalooza:
Bezüglich der Konfiguration der E/A´s, muss ich zu meiner Schande gestehen, dass ich mir das noch nicht genauer angesehen habe.

Ach, und das sollen wir für Dich erledigen?!

Ich habe aus verschiedenen Beispielen zusammenkopiert.

Dann hast Du verdient, dass es nicht funktioniert.

Ich bin raus aus diesem Thread.

Gruß

Gregor

Eigentlich habe ich keinen Bock mehr, hier noch irgendwas zu posten, aber es gehört sich einfach...

Ich habe erst kürzlich mit der MC Programmierung angefangen, ich will ein Spielzeug für meine behinderte Tochter basteln.
Es soll ein Kasten werden, an dem mittels Buzzer meine Tochter eine Steckdose schalten kann, und mittels Buzzer würfeln, damit sie bei Gesellschaftsspielen nicht immer ausgeschlossen ist.

Ich wollte dies mit einem Touch-Screen umsetzen, habe also einen ArduinoUno und einen Touchscreen bei einem großen Online Elektronikhändler bestellt.
In der Programmierung des Arduino war ich schnell dabei, der Touchscreen allerdings war übel. Es war keine Anleitung dabei, nicht mal ein Link zu einem Manual/Tutorial. Über stundenlange Recherche und Versuche fand ich dann raus, welcher Typ das ist und welchen Treiber der TS hat.
In der Flut von Beispielsketchen fand ich dann heraus, welche Konfiguration zu meinem TS passen könnte. Die habe ich dann so übernommen.

Ich konnte wunderbar weiterarbeiten, konnte einen animierten Würfel darstellen und die verschiedenen Funktionen zum Schalten der Steckdose. Als ich mich daran machte, die Menüstruktur zu programmieren, bin ich auf dieses Problem gestoßen.

@MicroBahner : Vielen Dank für deine Antwort. Im Anhang ist ein Auszug eines Beispielsketches, den ich in der Library für den Touchscreen gefunden habe. Dort ist die PIN Konfiguration genau dieselbe wie ich verwendet habe. Wer weiß, vielleicht ist die sogar richtig ? Schwierig, da ich keine Unterlagen habe.
Warum ich deswegen so angegangen werde, keine Ahnung.

Anscheinend wird überall Fachwissen vorausgesetzt, sowohl beim Kauf eines solchen Touchscreens als auch in diesem Forum.

Wie auch immer, ich bin dann mal weg. Ich kann nichts dafür, ich bin da empfindlich, wenn mich jemand so behandelt. Mein Problem habe ich selber gelöst. Und falls ich wieder eins habe, gibt ja Gott sei Dank noch andere Foren.
Ich hoffe bloß, dass gewisse Personen nicht auch dort Ihren unnützen Senf zum Besten geben.

Also Salü,

hayabalooza

tftpaint.ino (7.64 KB)

Also wenn Du so zart besaitet bist, dass Dich die (ok, nicht wirklich schöne) Äußerung eines einzelnen Users dermaßen aus der Bahn wirft, dann solltest Du Foren generell meiden.
Wer im Netz postet, sollte schon über ein gewisses dickeres Fell verfügen. Da nehmen sich die Foren nichts.

Eine Lehre solltest Du allerdings wirklich ziehen: Kaufe erst, wenn Du das Datenblatt und (wenn Du sie daraus nicht selbst erstellen kannst) eine Lib dazu gefunden hast, auch wenn der Preis noch so verlockend ist.

Gruß Tommy

Hi

Ich finde es allerdings schade, daß jetzt wieder Waisenkinder, alleinerziehende Mütter und ausgesetzte Haustiere für ein schlechtes Gewissen sorgen müssen - warum kann nicht einfach Mal ein ganz normaler Mann im wehrdienstfähigem Alter der Grund für irgend etwas sein ... achja - Den interessiert ja Keiner.

Verstehe mich nicht falsch, ich finde Es großartig, daß Du für Deine Tocher so etwas zusammen baust, dabei ist's sogar egal, daß die Deine mit einer Behinderung leben muß - so einen Vater wünsche ich mir für mehr Kinder!

Aber ich finde Das 'mimimi ... nur wegen Euch ... unschuldige und BEHINDERTE Tochter ...
Wie gesagt - wäre der Aufbau für einen Mann, Der auch noch hart im Nehmen ist und zur Not auch Stahl kaut ... Keinen würde Es interessieren (warum sonst werden sämtliche Personengruppen haarklein aufgezählt, wenn's Mal irgendwo knallt?)

Viel Erfolg bei weiteren Basteleien - auch, wenn's ein weniger interessantes Klientel abdecken soll (hehe ... abdecken ... ) - aber Du wirst in ähnlichen Foren wohl mit ähnlichen Gesinnten leben müssen - und da treiben sich dann eventuell auch von Denen hier Welche herum.

MfG