LabVIEWForum.de - Debouncing einer Tastatur

LabVIEWForum.de

Normale Version: Debouncing einer Tastatur
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo dehmelp,

Zitat:Jeder Tastendruck besteht ja technisch aus hunderten "Tastendrücken"....
Ein Tastendruck ist ein (1) Tastendruck - und nicht hunderte… (Wenn man es als Event programmiert.)

Zitat:Werden die dann alle in mein Schieberegister geschoben?
Wenn du es so programmierst: ja.

Zitat:Oder Kommt für einmal K drücken auch nur einmal das Signal K an? (Wenn das eh nur einmal ankommt hätte ich kein Problem, nur legen meine ersten Programmierungen nahe das es eher 100Mal ankommt. :/ )
Je nachdem, wie du es programmierts. Mit einem Event bekommst du nur einen Tastendruck…

Zitat:Und die Verarbeitung in einer Eventschleife klingt super, nur kann ich das halt noch nicht...
Dafür gibt es ja die LabVIEW-Hilfe und den Beispielfinder…

Zitat:Mein Problem ist (z.B.) die Tastensequenz LKJ als eigenes Event zu definieren. Wenn ich das schaffe dann kann ich ja auch für diesen Fall einen Eventcase schreiben.
Du definierst keine "Tastensequenz" als Event. Du erstellst einen Eventcase, der auf Tastendrücke im VI reagiert und wertest die gedrückten Tasten aus…
Hi Gerd.
Die Tipps sind schonmal super. Ich hab auch versucht einen Eventcase zu erschaffen der auf Tastendrücke reagiert, aber nur halb geschafft.

Wenn ich einen zweiten Case (außer dem Timeout Case) erstelle und editiere (also unter edit events) kann ich einen Case erstellen der auf die Tastendrücke hoch/runter/rechts/links reagiert. Das funktioniert auch (Hab´s mit Boolean LED und TRUE/FALSE Konstanten getestet).

Leider gibt es (?) unter edit events nicht alle Zeichen der Tastatur...Das was mit oben unten klappt klappt also mit LKJ nicht. Sad
Bestimmt muss ich einfach die Tasten LKJ als Event definieren(bzw. Tastendrücke allgemein als Event definieren), nur fehlt mir da das Wissen. Die Hilfefunktion hat mich da ja leider auchnicht weiter gebracht. :/

Grüße,
Philipp
Erstell dir doch mal ein Event: Dieses VI -> Taste -> Taste gedrückt.
Dann bekommst du doch in diesem Case in deiner Event Struktur links einige Parameter zum Event.
Schau dir doch einfach mal an, ob du mit den Infos, die dir die Eventstruktur liefert, was anfangen kannst ;-)

Gruß
TDO
Big Grin Big Grin Big Grin Big Grin

Ha!!!! Vielen vielen Dank für den Tipp!!!
Genau sowas hatte ich gesucht...Und zu lange (dumm)übersehen.
Ich dachte die ganze Zeit das Key down die Pfeiltaste nach unten meinte und hab deswegen die ganze Zeit nach den anderen Tasten gesucht. Big Grin Ha, dummer Fehler.

Danke!!! Ich hätte es noch viel länger übersehen. Wink
Hallo dehmelp,

Zitat:Danke!!! Ich hätte es noch viel länger übersehen.

Da kann man nur sagen: Rtmfx
Einfach mal die Hilfe zur Event-Struktur lesen. Die wird nämlich exemplarisch anhand eines "Taste gedrückt?"-Events erläutert!
Homer sagt in solchen Fällen: "Doh!" Big Grin
Big Grin Big Grin Big Grin
Ja, Doh beschreibt es ganz gut. Smile

Ich sollte nicht so schnell lesen....Und mehr Kaffee beim programmieren trinken. Big Grin

Wenn ich das nächste Mal Zeit zum Scripten finde mach ich alles fertig und poste es dann.
Danke an alle für das Mitdenken. Smile
Was haltet Ihr von der Lösung.
Klar geht besser aber, es funktioniert, bis auf wenn ich zwei Tasten Zeitgleich drücke.
Hallo Rene,

diese Lösung finde ich immer noch "Scheiße" - ehrlich gesagt.

Was ist so schwer, die Event-Struktur mit ihrem KeyPress-Event zu nutzen? Du bekommst dort alle Informationen, die du anscheinend haben willst:
[attachment=54473]
Wozu musst du hier benutzerdefinierte Events anmelden und weiterhin die Input-Devices separat überwachen? Hmm

Zitat:bis auf wenn ich zwei Tasten Zeitgleich drücke.
Glaubst du wirklich, du wirst es jemals schaffen, zwei Tasten wirklich zeitgleich zu drücken? (Ich rede nicht vom "gedrückt halten"!)
Ha, hier wird ja sogar weiter gearbeitet selbt wenn ich grade keine Frage habe. Smile Sehr cool.

Ich hab es eben geschafft Zeit zu finden und mich dran zu setzen...Also jetzt 3 Entwickler und drei Lösungen. Big Grin

Ich vergleiche aber nur für dreimal "D" drücken. Den rest passe ich im eigentlichen Programm dann an. Smile
Jetzt hab ich aber noch eine Anschlussfrage.
Kann ich den von der Eventstruktur abgefragten Zeichensatz auf bestimmte Zeichen reduzieren?

Ich möchte ja das die Versuchsperson gleichzeitig zwei Sequenzen eintippt.

links: DDS
rechts: LLK

Bei der jetzigen Lösung würde meine Eventstruktur ja eine Kombination draus machen und DLK oder DDK o.ä. auslesen.
Hallo dehmelp,

Zitat:Ich vergleiche aber nur für dreimal "D" drücken. Den rest passe ich im eigentlichen Programm dann an.
Ich habe dein VI mal etwas "aufgeräumt" und unnötigen Code entfernt.
Außerdem ist da jetzt eine bequeme(re) Variante drin für den Abschlußvergleich: warum irgendwelche Zahlen eintippen, wenn man Zeichen vergleichen will…

Zitat:Kann ich den von der Eventstruktur abgefragten Zeichensatz auf bestimmte Zeichen reduzieren?
Du kannst gucken, welches Zeichen getippt wurde und dann entsprechend filtern…

Zitat:Ich möchte ja das die Versuchsperson gleichzeitig zwei Sequenzen eintippt.
links: DDS
rechts: LLK
Bei der jetzigen Lösung würde meine Eventstruktur ja eine Kombination draus machen und DLK oder DDK o.ä. auslesen.
Wie hattest du vorher zwischen "links" und "rechts" unterschieden? (Ich könnte auch nur mit der rechten Hand "D" und "L" eintippen…)
Du hast nur ein Eingabegerät - wie willst du also jemals herausbekommen, mit welcher Hand getippt wurde!?
Seiten: 1 2 3
Referenz-URLs