k210外部中斷的運用-irq()
k210外部中斷的運用-irq()
irq 中斷
GPIO.irq(CALLBACK_FUNC,TRIGGER_CONDITION)
配置中斷。
- 【CALLBACK_FUNC】中斷執行的回調函數;
- 【TRIGGER_CONDITION】中斷觸發方式;
- GPIO.IRQ_RISING:上升沿觸發
- GPIO.IRQ_FALLING:下降沿沿觸發
- GPIO.IRQ_BOTH:都觸發
關閉中斷。
GPIO.disirq()
延用按鍵+LED的例子
from Maix import GPIO
from fpioa_manager import fm
import utime
fm.register(12, fm.fpioa.GPIO0)
fm.register(16, fm.fpioa.GPIOHS0)
led=GPIO(GPIO.GPIO0, GPIO.OUT, value=1)
btn=GPIO(GPIO.GPIOHS0, GPIO.IN)
state=1
def callback(btn):
global state
utime.sleep_ms(10)
if btn.value()==0:
state=not state
led.value(state)
btn.irq(callback, GPIO.IRQ_FALLING)
解說:
載入要用的模組
from Maix import GPIO
from fpioa_manager import fm
from time import sleep
將腳位引到外設指定的虛擬腳位
fm.register(12, fm.fpioa.GPIO0)
fm.register(16, fm.fpioa.GPIO1)
使用外設的腳位指定給LED和KEY
led=GPIO(GPIO.GPIO0, GPIO.OUT)
btn=GPIO(GPIO.GPIO1, GPIO.IN)
回調函式,並代入irq()
state=1
def callback(btn):
global state
utime.sleep_ms(10)
if btn.value()==0:
state=not state
led.value(state)
btn.irq(callback, GPIO.IRQ_FALLING)
留言
張貼留言