3
我想将下面的代码从Javascript翻译成MicroPython:micro。这是发明人的套件从块转换为Javascript的代码示例3。BBC MicroPython中是否有事件回调?
let light_state = 0
# how do you do this bit?
input.onPinPressed(TouchPin.P0,() => {
if (light_state == 0) {
light_state = 1
} else {
light_state = 0
}
})
basic.forever(() => {
if (light_state == 1) {
pins.analogWritePin(AnalogPin.P2, pins.analogReadPin(AnalogPin.P1))
} else {
pins.digitalWritePin(DigitalPin.P2, 0)
}
})
我无法弄清楚如何做input.onPinPressed作为回调的事件,甚至是拉姆达。我能想到的最好的办法是反复轮询pin0。
from microbit import *
light_on = False
while True:
if pin0.is_touched():
light_on = not light_on
if light_on:
aval = pin1.read_analog()
pin2.write_analog(aval)
else:
pin2.write_digital(0)
我在MicroPython文档中看到了交换机上的回调函数,但是我还没有遇到micro:bit引脚的任何事件回调函数。有没有这个功能的示例代码,即使它没有记录?
编辑:我对代码进行了更正 - 之前的MicroPython翻译导致LED不断闪烁。
我会尝试在微型论坛论坛中的[micro:bit area](https://forum.micropython.org/viewforum.php?f=17)... – nekomatic
@nekomatic - I'll如果有人在micro:bit论坛上回复,请在此发布答案 – cup