import time
import machine
from switch import Switch
switch_pin = machine.Pin(0, machine.Pin.IN, machine.Pin.PULL_UP)
my_switch = Switch(switch_pin, checks=3, check_period=20)
def switch_code():
long_press_start_ticks_ms = None
start_time = None
while True:
my_switch_new_value = False
# Disable interrupts for a short time to read shared variable
irq_state = machine.disable_irq()
if my_switch.new_value_available:
my_switch_value = my_switch.value
my_switch_new_value = True
my_switch.new_value_available = False
machine.enable_irq(irq_state)
if my_switch_new_value:
if my_switch.value:
print("Opened")
if long_press_start_ticks_ms != None:
print(time.ticks_diff(time.ticks_ms(), long_press_start_ticks_ms))
long_press_start_ticks_ms = None
else:
print("Closed")
if long_press_start_ticks_ms == None:
long_press_start_ticks_ms = time.ticks_ms()
# required to let the microcontroller cpu take care of other tasks
time.sleep_ms(1)
def ticks_ms_test():
start = time.ticks_ms()
while True:
time.sleep_ms(1000)
ticks = time.ticks_ms()
print(time.ticks_diff(ticks, start))
#ticks_ms_test()
switch_code()