MicroPython优雅的实现中断
· 阅读需 5 分钟
中断就像它的声音一样,是一个 “中断 “程序正常流程的事件。在一般的情况下,我们处理的是外部硬件中断,这意味着在程序继续运行之前,需要处理一个信号或状态变化。
中断的基本实现方法
为了实现中断,我们需要将一个引脚定义为 “中断输入”, 定义该点上的状态变化被认为是一个中断。
import machie
int = machine.Pin(1, machine.Pin.IN, machine.Pin.PULL_DOWN)
# 1 号引脚,输入模式,下拉电阻
同时,还需要创建了一个 “中断处理程序 “函数,我们希望在检测到中断时运行该函数。
def interrupt_handler(pin):
# 参数 `pin` 代表触发该中断的引脚
print("%d号引脚触发中断!" % pin)
然后将 “中断处理程序 “与 “中断输入 “配对。
int.irq(trigger=machine.Pin.IRQ_RISING, handler=interrupt_handler)
现在,每当中断输入条件发生时,Pico 将停止它正在做的任何事情,并执行 “中断处理程序”。然后它将恢复到原来的位置。
完整代码:
import machie
import utime
high = machine.Pin(0, machine.Pin.OUT)
high.value(1)
int_pin = machine.Pin(1, machine.Pin.IN, machine.Pin.PULL_DOWN)
def interrupt_handler(pin):
print("%s触发中断!" % str(pin))
int_pin.irq(trigger=machine.Pin.IRQ_RISING, handler=interrupt_handler)
while True:
print("Running!")
utime.sleep(1)