irq() 中的 运行 irq() 是怎样的?或者在第二个 irq 上禁用一个 irq?
how run irq() in irq() ? or disable one irq on secend irq?
我在主要功能中有一个爆震传感器,触摸它 运行 下一个功能,在下一个功能中我使用了 irq()。但在第二个功能中没有工作 irq。怎么修???或者使用其他方式??
我希望设备处于待机模式,并且 运行 enter_password() 通过敲击功能。
按一次敲门,enter_password() 开始。完成后进入待机模式,等待再次敲门到 运行 enter_password()。
按一次敲门必须 运行 enter_password() 并通过 5 个循环从用户处获取密码。每个循环给出 1 或 2 或 ...或 9 敲门。
例如:
1knock >> 运行 应用程序 >> 运行 enter_password()
for i range 4 >> 5 loop
loop 1 >>1knock >>my pass >> 1
loop 2 >> 7knock >>my pass >> 17
loop3 >> 4knock >>我的通行证 >> 174
loop 4 >> 0knock >>my pass >> 1740
loop 5 >> 2knock >>my pass >> 17402
我的通行证 >> 17402
if ok >> open door #serach by another function in my db 和 return ok or not ok
其他>>无
然后进入待机状态,等待 1 次敲击 运行 应用程序,一次又一次。
我在 nodemcu 上使用 micropython。 tnx 帮助我
num_knock = 0
def main():
.
.
.
while True:
P5 = Pin(5, Pin.IN)
P5.irq(trigger=Pin.IRQ_RISING , handler=enter_password() ) //ONE IRQ
def enter_password(P):
print("enter password starting")
p5 = Pin(5, Pin.IN)
door_password=""
for i in range(5):
global num_knock
num_knock = 0
chk_time = utime.time() + 12
while utime.time() <= chk_time:
p5.irq(trigger=Pin.IRQ_RISING , handler=callback ) #TWO IRQ - BUT NOT WORK - not call callback
door_password += str(num_knock )
return
def callback(p):
global num_knock
if num_knock < 9 :
num_knock += 1
led_num_knock = Pin(4, Pin.OUT)
led_num_knock.on()
utime.sleep_ms(200)
led_num_knock.off()
return
def main():
starter = Pin(5, Pin.IN)
webserver()
while True:
if starter.value()==1: #use while anf if for one IRQ
print("enter password fun")
led_on_off(3,600)
p5 = Pin(5, Pin.IN)
door_password=""
for i in range(5):
print("range %i" %i)
global num_kenok
num_kenok = 0
chk_time = utime.time() + 12
while utime.time() <= chk_time:
p5.irq(trigger=Pin.IRQ_RISING , handler=callback )
door_password += str(num_kenok)
led_on_off(1,500)
led_on_off(5,300)
find_password(door_password)
我在主要功能中有一个爆震传感器,触摸它 运行 下一个功能,在下一个功能中我使用了 irq()。但在第二个功能中没有工作 irq。怎么修???或者使用其他方式??
我希望设备处于待机模式,并且 运行 enter_password() 通过敲击功能。 按一次敲门,enter_password() 开始。完成后进入待机模式,等待再次敲门到 运行 enter_password()。
按一次敲门必须 运行 enter_password() 并通过 5 个循环从用户处获取密码。每个循环给出 1 或 2 或 ...或 9 敲门。
例如: 1knock >> 运行 应用程序 >> 运行 enter_password()
for i range 4 >> 5 loop
loop 1 >>1knock >>my pass >> 1
loop 2 >> 7knock >>my pass >> 17
loop3 >> 4knock >>我的通行证 >> 174
loop 4 >> 0knock >>my pass >> 1740
loop 5 >> 2knock >>my pass >> 17402
我的通行证 >> 17402
if ok >> open door #serach by another function in my db 和 return ok or not ok 其他>>无
然后进入待机状态,等待 1 次敲击 运行 应用程序,一次又一次。
我在 nodemcu 上使用 micropython。 tnx 帮助我
num_knock = 0
def main():
.
.
.
while True:
P5 = Pin(5, Pin.IN)
P5.irq(trigger=Pin.IRQ_RISING , handler=enter_password() ) //ONE IRQ
def enter_password(P):
print("enter password starting")
p5 = Pin(5, Pin.IN)
door_password=""
for i in range(5):
global num_knock
num_knock = 0
chk_time = utime.time() + 12
while utime.time() <= chk_time:
p5.irq(trigger=Pin.IRQ_RISING , handler=callback ) #TWO IRQ - BUT NOT WORK - not call callback
door_password += str(num_knock )
return
def callback(p):
global num_knock
if num_knock < 9 :
num_knock += 1
led_num_knock = Pin(4, Pin.OUT)
led_num_knock.on()
utime.sleep_ms(200)
led_num_knock.off()
return
def main():
starter = Pin(5, Pin.IN)
webserver()
while True:
if starter.value()==1: #use while anf if for one IRQ
print("enter password fun")
led_on_off(3,600)
p5 = Pin(5, Pin.IN)
door_password=""
for i in range(5):
print("range %i" %i)
global num_kenok
num_kenok = 0
chk_time = utime.time() + 12
while utime.time() <= chk_time:
p5.irq(trigger=Pin.IRQ_RISING , handler=callback )
door_password += str(num_kenok)
led_on_off(1,500)
led_on_off(5,300)
find_password(door_password)