Welche Einheit haben die Werte in den Spalten Periode und Pulsweite?
Der aktuelle Zustand der Tasten kann nur in bestimmten Zeitabschnitten über USB an den PC geschickt werden. Diese Rate beträgt beim Arcaze immer 10ms (10 Millisekunden = 0,01 Sekunden). In den Spalten Periode und Pulsweite sind Vielfache von diesen 10ms angegeben. Eine 2 heißt also 20ms, eine 10 heißt 100ms bzw. 0,1 Sekunden.
Es können also höchstens 100 mal pro Sekunde aktualisierte Daten an den PC geschickt werden. Es kann aber Sinn machen, das seltener zu tun. Zum Beispiel um so Tasten zu entprellen, weil einfach eine geringere Eingabegeschwindigkeit gewünscht ist, oder weil bei einzelnen Ereignissen ("Rising Edge/Falling Edge") die Ausgabedauer zu kurz ist, um von der anzusteuernden Applikation überhaupt erkannt zu werden.
Diese Ausgabedauer stellen Sie mit dem Wert Periodendauer ("Periode") ein. Eine 10 bedeutet hier also, dass eine Taste immer für 0,1s angelegt wird, ehe der nächste Schritt ausgeführt wird. Es werden dann also (maximal) 10 Zeichen/s gesendet, bei Einstellung 5 werden 20 Zeichen/s gesendet usw.
Allerdings hängt diese Verzögerung nicht ausschließlich vom Modul ab, sondern in hohem Maße auch von Windows und von der PC-Hardware. Denn zwar werden bei der Einstellung Delay=1 durchaus auch wirklich 100 Anschläge pro Sekunde gesendet, aber das Betriebssystem und oft auch die Applikation ist meistens nicht in der Lage, diese hohe Anzahl von Eingaben auch zu verarbeiten. Das tatsächliche Maximum hängt also von PC und Installation ab.
Auf einem Beispiel-Rechner wurde folgender Test gemacht:
Texteditor öffnen und für genau 10 Sekunden im Pulse Mode ein Zeichen senden. (effektiv eine Taste für 10 Sekunden gedrückt halten) Dann die Anzahl der insgesamt im Texteditor angekommenen Zeichen zählen.
Das Ergebnis zeigt, dass das getestete System (aktueller PC mit Windows XP) bei ca. 35 Anschlägen pro Sekunde an seine Grenzen kommt.
| Einstellung Delay-Spalte | Verzögerung (in Sekunden) | Zeichen pro Sekunde |
| theoretisch | Messwert |
| 1 | 0,01 | 100 | 35 |
| 2 | 0,02 | 50 | 35 |
| 3 | 0,03 | 33 | 33 |
| 4 | 0,04 | 25 | 25 |
| 5 | 0,05 | 20 | 20 |
| 10 | 0,1 | 10 | 10 |
| 20 | 0,2 | 5 | 5 |
| 50 | 0,5 | 2 | 2 |
| 100 | 1 | 1 | 1 |
Der PC an sich kann natürlich eigentlich viel mehr Daten verarbeiten, aber die Implementierung des USB-Stack in Windows bringt diese Grenze mit sich.
Ein Taster soll nicht dauerhaft als gedrückt erkannt werden, sondern nur ein einzelnes Zeichen beim Niederdrücken ausgeben
Standardmäßig wird eine Taste immer genau so lange als aktiv an den PC übermittelt, wie sie auch tatsächlich gedrückt ist. Dies nennt sich "Repeat Mode". Es gibt aber noch andere Möglichkeiten, folgende Modes existieren:
- Repeat
Taste "gedrückt" so lange Input aktiv - Rising Edge
Nur beim Niederdrücken der Taste wird ein einzelnes Zeichen gesendet - Falling Edge
Nur beim Loslassen der Taste wird ein einzelnes Zeichen gesendet
Im Beispiel wird ein einzelnes "A" gesendet werden, wenn die Taste an A01 gedrückt wird. Egal wie lange sie danach gedrückt bleibt, es kommt kein weiteres Zeichen dazu:

Das ist nicht nur bei Tastern interessant, sondern ganz besonders bei Schaltern. Wenn ein Schalter beim Einschalten eine Taste und beim Ausschalten eine andere Taste senden soll, dann sind einfach 2 verschiedene Makros für diese beiden Funktionen anzulegen, die eine mit "Rising Edge" als Startbedingung und die andere mit "Falling Edge" als Startbedingung.