MicroPython外部中斷
首先我們需要一個中斷處理函數,該函數接受 machine.Pin 類型的參數
import machine
def handle_interrupt(pin:machine.Pin):
print(pin.Value(0))
設置用作中斷的引脚
import machine
gpio = machine.Pin(0,machine.Pin.IN,machine.Pin.PULL_UP)
gpio.irq(handler=handler_interrupt,trigger=machine.Pin.IRQ_FALLING,priority=1,wake=None,hard=False)
其中 machine.Pin.irq 方法參數為
- handler (可選,默認值為None) 是在中斷時調用的函數
- trigger (默認值為(machine.Pin.IRQ_FALLING|machine.Pin.IRQ_RISING))可以產生中斷的事件,可以使用 或 選擇多個情況,可能值為:
- machine.Pin.IRQ_FALLING 在電平下降時中斷
- machine.Pin.IRQ_RISING 在電平上升時中斷
- machine.Pin.IRQ_LOW_LEVEL 低電平中斷
- mcahine.Pin.IRQ_HIGH_LEVEL 高電平中斷
- priority (默認為1)設置中斷優先級
- wake (默認為None)選擇可喚醒系統的電源模式,可以使用 或 選擇多個電源模式,可能值為:
- machine.IDLE
- machine.SLEEP
- machine.DEEPSLEEP
- hard (默認False)設置硬中斷
Comments