Micropython:如何去除Pyboard USR开关?

时间:2017-11-24 20:56:39

标签: debouncing micropython

我目前在MicroPython上运行此Pyboard v1.1代码:

import pyb

def toggle_led():
    pyb.LED(3).toggle()

sw = pyb.Switch()
sw.callback(toggle_led)

但是,此设置易受contact bounce的影响。

我尝试加起来pyb.delay(500)无济于事。

是否有一种优雅的方法可以解决Pyboard上的USR切换反弹问题?

1 个答案:

答案 0 :(得分:1)

这对我有用。我从MicroPython forum的帖子中描述的程序中获得灵感。

import pyb

def toggle_led():
    pyb.disable_irq()
    pyb.delay(100)
    if sw.value(): pyb.LED(3).toggle()
    pyb.enable_irq()

sw = pyb.Switch()
sw.callback(toggle_led)

更好:uasyncio

有一种更好的方法,无需中断。 以下是Peter Hinch出色的uasyncio教程中buttons example的链接。