Как решить ошибку сна в 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 ответ
Оказывается, все, что нужно было изменить
time.sleep(0.001)
к
utime.sleep_ms(1)
. Спасибо, Майкл Гидри!