Skip to content

Commit 888647c

Browse files
committed
Add on press & on release
1 parent b8ff6d1 commit 888647c

File tree

1 file changed

+41
-0
lines changed
  • ports/esp32/boards/KidBright32/modules

1 file changed

+41
-0
lines changed

ports/esp32/boards/KidBright32/modules/switch.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,46 @@
55
S1 = Pin(16, Pin.IN, Pin.PULL_UP)
66
S2 = Pin(14, Pin.IN, Pin.PULL_UP)
77

8+
__s1_press = None
9+
__s1_release = None
10+
__s2_press = None
11+
__s2_release = None
12+
13+
def __onSwitchChangesValue(pin):
14+
if pin.value():
15+
callback = None
16+
if pin == S1:
17+
callback = __s1_release
18+
elif pin == S2:
19+
callback = __s2_release
20+
if callback:
21+
callback()
22+
else:
23+
callback = None
24+
if pin == S1:
25+
callback = __s1_press
26+
elif pin == S2:
27+
callback = __s2_press
28+
if callback:
29+
callback()
30+
31+
32+
S1.irq(handler=__onSwitchChangesValue, trigger=Pin.IRQ_FALLING | Pin.IRQ_RISING)
33+
S2.irq(handler=__onSwitchChangesValue, trigger=Pin.IRQ_FALLING | Pin.IRQ_RISING)
34+
835
def value(pin):
936
return 0 if pin.value() else 1
37+
38+
def press(pin, callback):
39+
global __s1_press, __s2_press
40+
if pin == S1:
41+
__s1_press = callback
42+
elif pin == S2:
43+
__s2_press = callback
44+
45+
def release(pin, callback):
46+
global __s1_release, __s2_release
47+
if pin == S1:
48+
__s1_release = callback
49+
elif pin == S2:
50+
__s2_release = callback

0 commit comments

Comments
 (0)