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)



留言

這個網誌中的熱門文章

k210攝像頭實時鏡頭實驗