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. |