Microbit 上 Micropython 命令 time_pulse_us 的问题
Problems with Micropython command time_pulse_us on Microbit
我想请你帮忙。我正在尝试将距离传感器连接到我的 microbit,但是当我使用命令“time_pulse_us”时,它总是给出 -2 或 -1。我阅读了文档,我理解这些数字的含义,但我认为该命令有问题,或者我可能以错误的方式使用它。
在这方面,我写了一个简单的片段来测试命令。你能告诉我它有什么问题吗?
from microbit import * //to import microbit modules
from machine import * //to import the time_pulse_us command
while True:
pin1.write_digital(0)
time = time_pulse_us(pin2, 1) //to begin the timing
pin1.write_digital(1) //this pin is connected to an LED
sleep(1000)
value = pin2.read_digital() //gives 1, as this pin is reading the voltage from the led
pin1.write_digital(0) //this will make the time_pulse command to end timing
display.scroll(time) //it should display the duration of the pulse.
//Displays -2 instead.
display.scroll(value) //gives 1, as expected
为什么这不起作用?
time_pulse_us()
按顺序运行,而不是在后台运行,因此在调用时它将等待 1 秒以使引脚达到 1,但它不会这样做,因此 time
将设置为-2,在程序继续执行下一个命令之前 write_digital(1)
.
我想请你帮忙。我正在尝试将距离传感器连接到我的 microbit,但是当我使用命令“time_pulse_us”时,它总是给出 -2 或 -1。我阅读了文档,我理解这些数字的含义,但我认为该命令有问题,或者我可能以错误的方式使用它。
在这方面,我写了一个简单的片段来测试命令。你能告诉我它有什么问题吗?
from microbit import * //to import microbit modules
from machine import * //to import the time_pulse_us command
while True:
pin1.write_digital(0)
time = time_pulse_us(pin2, 1) //to begin the timing
pin1.write_digital(1) //this pin is connected to an LED
sleep(1000)
value = pin2.read_digital() //gives 1, as this pin is reading the voltage from the led
pin1.write_digital(0) //this will make the time_pulse command to end timing
display.scroll(time) //it should display the duration of the pulse.
//Displays -2 instead.
display.scroll(value) //gives 1, as expected
为什么这不起作用?
time_pulse_us()
按顺序运行,而不是在后台运行,因此在调用时它将等待 1 秒以使引脚达到 1,但它不会这样做,因此 time
将设置为-2,在程序继续执行下一个命令之前 write_digital(1)
.