Projekt

Allgemein

Profil

Touch » Historie » Version 2

Maximilian Seesslen, 20.12.2022 18:05

1 1 Maximilian Seesslen
h1. Touch
2
3
h2. Eval
4
5
Der TSC2007 loest beim Druecken und Loslassen des Displays Interrupts aus.
6
Das Auslesen der Koordinaten loest selbst Interrupts aus.
7
Diese muessen waerend dem Auslesen gesperrt sein.
8
Ueber die Z-Werte kann Druecken oder Loslassen ermittelt werden. Bei leichter Beruehrung koennen einige Events verloren gehen (zittern der Interrupts).
9
Es sollen nur Aenderungen beim Auslesen bewertet werden (Filterung beim Auslesen vs. Interrupts?).
10
11 2 Maximilian Seesslen
h3. State machine
12
13
High-Interrupt setzt statemachine in "hit", sofern nicht schon im pressed status.
14
Low-Interrupt setzt statemachine in "release", sofern im pressed status. Im "Hit"-Fall wird nichts gemacht.
15
16
Event-Loop prueft, ob touch gedrueckt wurde, aber kein Interrupt ausgeloest wurde: Diagnose. Wenn im idle oder release, gehe nach hit.
17
Event-Loop prueft, ob losgelassen wurde, aber kein Interrupt ausgeloest wurde: Diagnose. Wenn im pressed, gehe nach release.
18
19
* Idle: .
20
* Hit: Event-Loop liest im "hit" die koordinate aus (Weitere interrupts sollten nicht stoeren). Initiiere Pieps. Es wird nach "pressed" gewechselt.
21
* Pressed: es werden alle 100ms die Koordinaten erneuert. Das Widget wird ueberprueft. Gggf. wird das selektierte Widget gewechselt.
22
* Release: Schicke event an Widget. Gehe nach idle.
23
24 1 Maximilian Seesslen
Die Touch-Klasse hat 3 Signale; pressed, released, clicked.
25
Ophio kann diese entsprechend verdrahten.
26
CBringup kann sie auch verdrahten und wartet auch ein clicked mit entsprechenden koordinaten.
27
28
Die Signale werden in der Main-Event-Loop ausgefuehrt, ein CRing/Event-Speicher ist nicht notwendig.