![]() |
Debouncing einer Tastatur - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Debouncing einer Tastatur (/Thread-Debouncing-einer-Tastatur) |
RE: Debouncing einer Tastatur - GerdW - 27.10.2015 19:32 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… RE: Debouncing einer Tastatur - dehmelp - 29.10.2015 11:12 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. ![]() 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 RE: Debouncing einer Tastatur - TDO - 29.10.2015 12:35 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 RE: Debouncing einer Tastatur - dehmelp - 29.10.2015 12:46 ![]() ![]() ![]() ![]() 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. ![]() Danke!!! Ich hätte es noch viel länger übersehen. ![]() RE: Debouncing einer Tastatur - GerdW - 29.10.2015 18:22 Hallo dehmelp, Zitat:Danke!!! Ich hätte es noch viel länger übersehen. Da kann man nur sagen: ![]() 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!" ![]() RE: Debouncing einer Tastatur - dehmelp - 30.10.2015 08:47 ![]() ![]() ![]() Ja, Doh beschreibt es ganz gut. ![]() Ich sollte nicht so schnell lesen....Und mehr Kaffee beim programmieren trinken. ![]() 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. ![]() RE: Debouncing einer Tastatur - Rene1304 - 03.11.2015 09:42 Was haltet Ihr von der Lösung. Klar geht besser aber, es funktioniert, bis auf wenn ich zwei Tasten Zeitgleich drücke. RE: Debouncing einer Tastatur - GerdW - 03.11.2015 09:50 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? ![]() 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"!) RE: Debouncing einer Tastatur - dehmelp - 03.11.2015 11:00 Ha, hier wird ja sogar weiter gearbeitet selbt wenn ich grade keine Frage habe. ![]() Ich hab es eben geschafft Zeit zu finden und mich dran zu setzen...Also jetzt 3 Entwickler und drei Lösungen. ![]() Ich vergleiche aber nur für dreimal "D" drücken. Den rest passe ich im eigentlichen Programm dann an. ![]() 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. RE: Debouncing einer Tastatur - GerdW - 03.11.2015 12:00 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.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!? |