Taster mit latch-funktion
Zu Markus Bild ohne Wort doch noch etwas Text: Bei Latch (Latch bim Drücken/Loslasse) geht der Schalter geht der Schalter auf false, wenn er vom Programm gelesen wird. Latch verträgt sich aber nicht mit lokalen Variablen, also kannst Du keinen Latch verwenden. Zur Auswähl stehen drei Möglichkeiten:
S1: Beim Drücken schalten: Der Schalter bleibt bei Betätigung gedrückt und geht gleichzeitig auf true, solange, bis er wieder betätigt wird. Dann geht er auf false.
S2: Bem loslassen Schalten: optische Reaktion identisch mit 1, allerdings erfolgt der False/True Wechsel erst mit dem Loslassen. Es gibt also einen Zustand, daß der Schalter (auf dem FP) zwar gedrückt ist, aber im Blockbild nicht den Wert true hat, weil er nicht nicht losgelassen wurde.
S3: Bis zum Loslassen schalten: Funktioniert exakt wie ein Klingelknopf, d.h beim Loslassen spring er wieder heraus.
Anwendung in deinem Fall:
S3: Das hast Du offensichtlich ausgewählt. Damit kommst Du zwar ohne lokale Variable aus, weil der Knopf beim Loslassen von selbst wieder zurückspringt, begibst Dich aber in zwei Gefahren: Entweder du drückst zu kurz, dann geschieht gar nichts, oder zu lang, dann wird die gewünschte Aktion gleich mehrmals ausgeführt. Das ist unbefriedigend.
S1: Knopf muß durch eine lokale Variable nach dem Auslesen wieder auf false gesetzt werden - siehe Markus. Zusätzlich ist es von Vorteil, wenn er bei der Initialisierung mit eine weiteren lokalen variablen auf false gesetzt wird - siehe Markus. (Vorteilhaft aus folgendem Grund: Bei gewaltsamen Programmabbruch mit dem roten Kopf könnte sonst der Knopf beim Neustart falsch gesetzt sein)
Unbefriedigend am Beispiel von Markus ist: Der Benutzer erlebt keine Aktion, der Knopf läßt sich scheinbar überhaupt nicht betätigen. Das liegt daran, daß das Rücksetzen praktisch in derselben Mikrosekunde wie das Drücken erfolgt.
S2: Wenn man dem Benutzer dieses Erlebnis gönnen möchte, dann ist es besser, die Aktion S2 zu wählen. Dasselbe gilt auch für Latch-Einstellungen. Wenn man am Kopf eine Bewegung sehen will, dann sollte man S5 wählen und nicht S4. Das ist auch die Standardeinstellung des STOP-Elementes.
|