如何解决树莓派 Pico 中的睡眠错误?

时间:2021-03-17 22:28:37

标签: python raspberry-pi micropython raspberry-pi-pico

我购买了 Raspberry Pi Pico 并设置了一切。它完美无缺,但现在有时我在 sleep(0.001) 附近出错,有时它起作用,有时不起作用。我有两个 7 段显示器,我想相应地打开和关闭它们。不幸的是,过了一会儿,代码开始在睡眠中崩溃。它需要很小才能使二极管看起来很亮并使它们显示不同的数字。无论如何,这是我的代码(我仍在努力使从 7 到 9 的数字也出现,但错误出现了,我不知道为什么)

from machine import Pin
from time import sleep

en_pins = [18, 19, 20, 21, 13, 12, 11, 10]
gnd_pins = [9, 22]
en = []
gnd = []
for i in range(len(en_pins)):
    en.append(Pin(en_pins[i], Pin.OUT))
    en[i].value(0)
for i in range(len(gnd_pins)):
    gnd.append(Pin(gnd_pins[i], Pin.OUT))
    gnd[i].value(0)


def turnOn(to):
    for i in range(len(to)):
        if i == 0:
            to[len(to) - 1].value(0)
        else:
            to[i - 1].value(0)
        to[i].value(1)
        sleep(0.001)
    to[len(to) - 1].value(0)


def numbers(num):
    if   num == 1: return [en[0], en[6]]
    elif num == 2: return [en[1], en[2], en[3], en[5], en[6]]
    elif num == 3: return [en[0], en[1], en[3], en[5], en[6]]
    elif num == 4: return [en[0], en[1], en[6], en[7]]
    elif num == 5: return [en[0], en[1], en[3], en[5], en[7]]
    elif num == 6: return [en[0], en[1], en[2], en[3], en[5], en[6]]
    elif num == 7: return [en[0], en[1], en[2], en[3], en[5], en[6], en[7]]
    elif num == 8: return [en[0], en[1], en[2], en[3], en[5], en[6], en[7]]
    elif num == 9: return [en[0], en[1], en[2], en[3], en[5], en[6], en[7]]
    elif num == 0: return [en[0], en[1], en[2], en[3], en[5], en[6], en[7]]


while True:
    gnd[0].value(0)
    gnd[1].value(1)
    turnOn(numbers(2))
    gnd[1].value(0)
    gnd[0].value(1)
    turnOn(numbers(6))

1 个答案:

答案 0 :(得分:1)

结果只是将 time.sleep(0.001) 更改为 utime.sleep_ms(1)。 谢谢迈克尔·吉德里!