INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Debouncing einer Tastatur



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

21.10.2015, 12:08
Beitrag #1

dehmelp Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Jul 2015

Ni Academic Site License 2015
2013
DE



Debouncing einer Tastatur
Moin.
Ich hab ein nerviges Problem. In meinem Experiment müssen die Teilnehmer mit Tastendrücken auf der Tastatur reagieren...Sie müssen die Sequenz L,K,J genau in dieser Reihenfolge drücken. Alle anderen Kombinationen sollen ein Fehlerbild anzeigen.
Meine Versuche "funktionieren" solange die highlight execution aktiviert ist. In normaler Geschwindigkeit klappt es nicht. Scheint also so als würde der erste Tastendruck (L) zu lange ausgelesen werden, so das das Programm denkt der Teilnehmer reagiert schon auf den zweiten Reiz. Und das falsch....Das VI ist angehängt, also falls jemand eine Idee hat. Smile

Grüße,
Philipp


Angehängte Datei(en)
14.0 .vi  Keyboard debouncing.vi (Größe: 73,91 KB / Downloads: 79)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.10.2015, 13:09
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 16.075
Registriert seit: May 2009

09SP1, 11SP1, 17 (selten 19)
1995
DE_EN

10×××
Deutschland
RE: Debouncing einer Tastatur
Hallo dehmelp,

anstatt mit dem Input-Funktionen rumzumachen (und das nicht besonders schön), könntest du auch einfach eine Event-Struktur und ein Schieberegister nutzen. Die Eventstruktur teilt dir mit, wann eine Taste gedrückt wurde und auch gleich, welche es war…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.10.2015, 09:04
Beitrag #3

dehmelp Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Jul 2015

Ni Academic Site License 2015
2013
DE



RE: Debouncing einer Tastatur
Hallo Gerd.
Danke für den Tipp...Hab noch nie mit ner Eventstruktur gearbeitet, daher kam ich nicht auf die Idee. Werde das gleich mal versuchen. Smile
Grüße,
Philipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2015, 11:09
Beitrag #4

dehmelp Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Jul 2015

Ni Academic Site License 2015
2013
DE



RE: Debouncing einer Tastatur
Hmm...
Hatte wohl seinen Grund das ich noch nie mit ner Eventstruktur gearbeitet habe...Kann ich nämlich noch nicht.
Hat jemand vielleicht ein Beispiel das in meine Richtung gehen könnte?

Mein größtes (wenn auch nicht einziges Problem) ist die Definition eines Events...Schon da stockt es bei mir. Wie definiere ein Event das in drei Stufen auftreten kann??? Also Bild 1,2 oder 3.
Einfach nur ein Wertewechsel als Event geht ja noch, aber wenn das Event sich auf bestimmte Werte ändert blick ich nicht durch.

Grüße,
Philipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2015, 11:20
Beitrag #5

NoWay Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 206
Registriert seit: Jul 2013

2018, 2019
2013
EN


Deutschland
RE: Debouncing einer Tastatur
siehe hier: http://zone.ni.com/reference/de-XX/help/...cfgevents/

und hier: http://zone.ni.com/reference/de-XX/help/...structure/
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2015, 11:23
Beitrag #6

dehmelp Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Jul 2015

Ni Academic Site License 2015
2013
DE



RE: Debouncing einer Tastatur
Durch die Seiten bin ich schon durch, und auch die vorgefertigten Beispiele hab ich schon versucht zu verstehen...Bis jetzt bleiben es böhmische Dörfer. Sad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
26.10.2015, 11:35
Beitrag #7

NoWay Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 206
Registriert seit: Jul 2013

2018, 2019
2013
EN


Deutschland
RE: Debouncing einer Tastatur
Hab dir da mal zusammengeklickt:
   

Übe das in einem leeren VI! Wenn man etwas nicht versteht, erarbeitet man sich das häppchenweise. Erstelle eine Eventstruktur in einer While Schleife z.B., damit das Event mehr als einmal ausgeführt wird. Mit einem einfachen boolschen control und einem Anzeigeelement kannst du das dann testen.

Mein Screenshot sollte eigentlich alles erklären: Wenn du auf einen Tastendruck reagieren willst, dann wählst du in der Mitte dein boolsches Element (= den Schalter) und rechts "Value Change" (=Wertänderung).
WAS dann passiert programmierst du in dem entsprechenden Case der dann in deiner Eventstruktur auftaucht. Ist garnicht so schwer. Trau dich und probier es aus. Ich versichere dir, du kannst (in einem leeren VI) nichts kaputt machen Wink

Gruß,
NoWay
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2015, 12:25
Beitrag #8

dehmelp Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Jul 2015

Ni Academic Site License 2015
2013
DE



RE: Debouncing einer Tastatur
Hi NoWay.
Schonmal Danke für deinen Tipp. Smile
Ich hab es auch Häppchenweise versucht und die Value change Einstellung funktioniert auch ein wenig so wie sie soll...Nur nicht ganz. Smile

Es muss sich nämlich nicht nur "einfach" der Wert ändern damit ein bestimmter Fall ausgeführt wird, sondern der Wert muss sich in einen bestimmten Wert ändern.

Also
value change von "egal" zu Bild 1
oder
value cahnge von "egal" zu Bild 2
....usw...
Und den Teil schafffe ich noch nicht...Würde ich eigentlich auch einfach mit ner case Struktur machen, aber mir wurde gesagt Eventstruktur wäre da besser.

Der zweite Teil ist dann das was ich schwieriger lösen kann...Das wären nämlich
drei Tastendrücke nacheinander
die zweite Taste kann erst nach der ersten gedrückt werden, die dritte erst nach der zweiten
für jeden Tastendruck hat man maximal 1000ms Zeit
falls eine der Tasten nicht der vordefinierten Reihenfolge entspricht (Oder die Reaktion zu langsam war) kommt eine Fehlermeldung.

Den Teil soll ich ja eigentlich mit der Eventstruktur lösen, aber da steh ich ziemlich auf dem Schlauch wie das gehen soll.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2015, 12:44
Beitrag #9

TDO Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 121
Registriert seit: Oct 2013

2016
2009
DE


Deutschland
RE: Debouncing einer Tastatur
Wie Gerd schon geschrieben hat, erstellst du dir einfach ein Schieberegister an der äußeren while Schleife und schiebst da, die Zeichen rein, welche getippt wurden.
Das Schieberegister kannst du bei jedem ausgelösten Event überprüfen und dementsprechend reagieren.
Wenn das Event 1000ms nicht ausgelöst wird, kannst du das Schieberegister im Timeout case wieder löschen.

Gruß
TDO
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2015, 09:03
Beitrag #10

dehmelp Offline
LVF-Grünschnabel
*


Beiträge: 34
Registriert seit: Jul 2015

Ni Academic Site License 2015
2013
DE



RE: Debouncing einer Tastatur
Hallo TDO.
Also die Zeichen in ein Schieberegister zu schreiben bekomm ich hin, aber sind das dann nicht sehr viele Zeichen? Jeder Tastendruck besteht ja technisch aus hunderten "Tastendrücken"....Werden die dann alle in mein Schieberegister geschoben? 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. :/ )

Und die Verarbeitung in einer Eventschleife klingt super, nur kann ich das halt noch nicht... 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.
Nur wie geht das???

Grüße,
Philipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Maustaste in Ereignisstruktur abfragen / Bedienelement verliert Tastatur-Focus Horst 1 1.034 25.07.2019 12:31
Letzter Beitrag: Horst
  Navigation spaltenweise mit Tastatur in einer Baumstruktur GT123 5 1.549 25.01.2018 08:56
Letzter Beitrag: IchSelbst
  virtuelle Tastatur ichmaglachs 7 4.072 28.12.2015 18:35
Letzter Beitrag: Trinitatis
  Booleschem Element eine Taste der Tastatur zuweisen aw 6 4.998 15.01.2014 15:55
Letzter Beitrag: Trinitatis
  Eigene virtuelle Tastatur Matze 6 4.892 02.07.2013 19:00
Letzter Beitrag: dimitri84
  Eingabe nicht über Tastatur sondern über RS232 Schnittstelle? niete0815 12 7.573 29.11.2011 12:32
Letzter Beitrag: niete0815

Gehe zu: