User Manual

15
Figure 10. Detailed Gesture Diagram
COLLECT U/D
PHOTODIODE
DATA
GFLVLs++
GDIMS != 10
COLLECT L/R
PHOTODIODE
DATA
DATA TO FIFO
GDIMS != 01
ASSERT INT PIN
GFLVLs >=
GFIFOTHs
?
GFLVLs == 32
?
N
Y
GIEN ==1
?
PERSISTANCE++
UNMASKED
GDATA <=
GEXTHs
N
Y
RESET
PERSISTANCE
WAIT
GWTIME > 0
?
N
Y
PERSISTANCE
>=
GEXPERSs
N
GVALID == 1
?
RESET FIFO
(Orphanded data)
Y
N
GMODE=0
Y
ENTER
GESTURE
EXIT
GESTURE
N
N
Y
DATA AQUISITION FIFO & INTERRUPTS
W
I
T
G
WT
I
M
E
>
0
?
N
Y
WAIT
LOOP CONTROL
Y
N
Y
GESTURE ENGINE
GMODE = 1
GVALID = 1
GINT=1
GFOV = 1
*Special state to clear FIFO in
the event of gesture entry
followed by rapid exit. This
condition results in to few
FIFO datasets to assert GINT.
This state prevents the
condition where “old” data
exists in FIFO that is not part
of current gesture entry.
GMODE = 0
GVALID = 0/1
GFLVL >= 0
GINT=1
Has FIFO
overowed?
Enough data
In FIFO to assert
interrupt?
Is GDATA
indicating
“hand wave”
has nished?
Have enough “hand wave
over” datasets occurred
consecutively to exit
Gesture?
N
Y
C
GEXTHs == 0
?
Remain in gesture mode
indenatly?
Y
N
GVALID = 0/1
GINT=0/1
GMODE == 0
?
Y
N
Has GMODE
been
cleared by host?
ASSERT INT PIN
GIEN ==1
?
Y
N
GINT=1
Conditions:
1. Gesture entry (GMODE=1)
2. GFLVL < GFIFOTH (GINT always 0)
3. Gesture exit (GMODE = 0)
GFLVLs >=
GFIFOTHs
?
GVALID = 1
GINT = 1
GFLVLs ==0
?
GINT=0
N
Y
GMODE ==1
?
Y
N
GVALID = 0
N
Y
G
F
L
V
L
s
>
=
G
FI
F
O
T
H
s
?
G
V
A
LI
D
=
1
G
INT
=
1
N
Y
*If gesture motion has ended,
GMODE = 0, but GDATA is still
available after exit from gesture
engine.
y
a
ary
y
y
mi
eli
elim
lim
rel
m
li
e
P
Pre
Pre
mi
m
m
m
m
elim
eli
eli
elim
lim
lim
lim
im
im
lim
li
li
lim
lim
im
im
m
im
lim
li
eli
eli
m
elimi
P
D
D
D
ee
ata
ash
as
as
s
a
D
sh
D
D
Da