UIFlow-Tastenabfrage: Difference between revisions

From Attraktor Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
UIFlow-Tastenabfrage (M5-UIF)
 
== UIFlow-Tastenabfrage ==
Bilderprefix: M5-UIF-Tasten-...
 
von Peter (peter@attraktor.org)


Die M5Stack-Cores besitzen 2-3 eingebaute Tasten. Die Auswertung von Tastenbetätigungen kann auf zwei unterschiedliche Arten erfolgen. Zum Einen durch deine direkte Abfrage der Tasten, zum Anderen per Interrupt. Beide Methoden werden von der UIFlow-IDE unterstützt.
Die M5Stack-Cores besitzen 2-3 eingebaute Tasten. Die Auswertung von Tastenbetätigungen kann auf zwei unterschiedliche Arten erfolgen. Zum Einen durch deine direkte Abfrage der Tasten, zum Anderen per Interrupt. Beide Methoden werden von der UIFlow-IDE unterstützt.
Line 5: Line 9:
Die Funktionen zugehörigen Funktionen findet man unter Events (Ereignisse):
Die Funktionen zugehörigen Funktionen findet man unter Events (Ereignisse):


[[image:M5-UIF-001.png|500px]]
[[image:M5-UIF-Tasten-001.png|800px]]


Diese 4 Funktionen behandelt die Tastenbetätigungen:


[[image:M5-UIF-Tasten-002.png|500px]]


Diese 2 Blöcke ermöglichen die direkte Tastenabfrage. Das bedeutet, dass die Tasten nur dann aktiv sind wenn das Programm sie gerade abfragt. In der übrigen Zeit haben sie keine Funktion:


Diese 4 Funktionen behandelt die Tastenbetätigungen:
[[image:M5-UIF-Tasten-003.png|500px]]
Diese 2 Blöcke ermöglichen die direkte Tastenabfrage. Das bedeutet, dass die Tasten nur dann aktiv sind wenn das Programm sie gerade abfragt. In der übrigen Zeit haben sie keine Funktion:


Dieser Block gibt WAHR zurück solange die ausgewählte Taste gedrückt (pressed) oder nicht gedrückt (released) ist. Er kann zusammen mit einer Abfrage (z.B. if) verwendet werden.
Dieser Block gibt WAHR zurück solange die ausgewählte Taste gedrückt (pressed) oder nicht gedrückt (released) ist. Er kann zusammen mit einer Abfrage (z.B. if) verwendet werden.


Der nächste Block liefert WAHR wenn sich am Zustand der Taste etwas verändert hat. D.h. wenn die Taste gedrückt wird, so wird bei nachfolgenden Abfrage WAHR zurückgegeben, bei der darauf folgenden aber FALSCH.
Der nächste Block liefert WAHR wenn sich am Zustand der Taste etwas verändert hat. D.h. wenn die Taste gedrückt wird, so wird bei nachfolgenden Abfrage WAHR zurückgegeben, bei der darauf folgenden aber FALSCH.
 
[[image:M5-UIF-Tasten-004.png|500px]]
 
 
 
 
Die folgenden Möglichkeiten stehen zur Auswahl
Die folgenden Möglichkeiten stehen zur Auswahl
Was pressed : Nur wenn neuer Tastendruck erfolgt ist.
Was pressed : Nur wenn neuer Tastendruck erfolgt ist.
Line 24: Line 33:
LongPress : wenn die Taste > 1s festgehalten wurde gibt es einmal diese Rückmeldung beim loslassen der Taste.
LongPress : wenn die Taste > 1s festgehalten wurde gibt es einmal diese Rückmeldung beim loslassen der Taste.
WasdoublePress : wenn die Taste sehr schnell hintereinander zwei mal gedrückt wurde gibt es einmal diese Rückmeldung beim loslassen der Taste.
WasdoublePress : wenn die Taste sehr schnell hintereinander zwei mal gedrückt wurde gibt es einmal diese Rückmeldung beim loslassen der Taste.
Die beiden nächsten Blöcke implementieren eine interruptgesteuerte Tastenabfrage. Das bedeutet, dass der Tastendruck zu jedem Zeitpunkt aktiv ausgewertet wird. Das laufende Hauptprogramm wird unterbrochen, der Programmteil innerhalb dieses Blocks wird ausgeführt und dann wird das Hauptprogramm fortgesetzt:


[[image:M5-UIF-Tasten-005.png|500px]]


Die beiden nächsten Blöcke implementieren eine interruptgesteuerte Tastenabfrage. Das bedeutet, dass der Tastendruck zu jedem Zeitpunkt aktiv ausgewertet wird. Das laufende Hauptprogramm wird unterbrochen, der Programmteil innerhalb dieses Blocks wird ausgeführt und dann wird das Hauptprogramm fortgesetzt:
Die Bedeutung der Optionen entspricht denen im vorherigen Absatz.
Die Bedeutung der Optionen entspricht denen im vorherigen Absatz.


Das Programm im folgenden Block wird ausgeführt, wenn beide ausgewählte Tasten gemeinsam gedrückt werden:
Das Programm im folgenden Block wird ausgeführt, wenn beide ausgewählte Tasten gemeinsam gedrückt werden:


[[image:M5-UIF-Tasten-006.png|500px]]


Programmbeispiel:
Programmbeispiel:
 
[[image:M5-UIF-Tasten-007.png|500px]]
 
[[category:UIFlow]]

Latest revision as of 18:13, 14 March 2020

UIFlow-Tastenabfrage

Bilderprefix: M5-UIF-Tasten-...

von Peter (peter@attraktor.org)

Die M5Stack-Cores besitzen 2-3 eingebaute Tasten. Die Auswertung von Tastenbetätigungen kann auf zwei unterschiedliche Arten erfolgen. Zum Einen durch deine direkte Abfrage der Tasten, zum Anderen per Interrupt. Beide Methoden werden von der UIFlow-IDE unterstützt.

Die Funktionen zugehörigen Funktionen findet man unter Events (Ereignisse):

Diese 4 Funktionen behandelt die Tastenbetätigungen:

Diese 2 Blöcke ermöglichen die direkte Tastenabfrage. Das bedeutet, dass die Tasten nur dann aktiv sind wenn das Programm sie gerade abfragt. In der übrigen Zeit haben sie keine Funktion:

Dieser Block gibt WAHR zurück solange die ausgewählte Taste gedrückt (pressed) oder nicht gedrückt (released) ist. Er kann zusammen mit einer Abfrage (z.B. if) verwendet werden.

Der nächste Block liefert WAHR wenn sich am Zustand der Taste etwas verändert hat. D.h. wenn die Taste gedrückt wird, so wird bei nachfolgenden Abfrage WAHR zurückgegeben, bei der darauf folgenden aber FALSCH.



Die folgenden Möglichkeiten stehen zur Auswahl Was pressed : Nur wenn neuer Tastendruck erfolgt ist. Was released : wenn die Taste gerade losgelassen wurde. LongPress : wenn die Taste > 1s festgehalten wurde gibt es einmal diese Rückmeldung beim loslassen der Taste. WasdoublePress : wenn die Taste sehr schnell hintereinander zwei mal gedrückt wurde gibt es einmal diese Rückmeldung beim loslassen der Taste. Die beiden nächsten Blöcke implementieren eine interruptgesteuerte Tastenabfrage. Das bedeutet, dass der Tastendruck zu jedem Zeitpunkt aktiv ausgewertet wird. Das laufende Hauptprogramm wird unterbrochen, der Programmteil innerhalb dieses Blocks wird ausgeführt und dann wird das Hauptprogramm fortgesetzt:

Die Bedeutung der Optionen entspricht denen im vorherigen Absatz.

Das Programm im folgenden Block wird ausgeführt, wenn beide ausgewählte Tasten gemeinsam gedrückt werden:

Programmbeispiel: