这段代码可以工作,但是只有在statemachine 0
上运行时才会触发中断:
虽然它是工作,我想知道是否有其他的方法来解决它
from machine import Pin, PWM
from time import sleep
import rp2
class PioLoader():
@rp2.asm_pio(set_init=rp2.PIO.OUT_LOW)
def blink():
wrap_target()
set(pins, 1) [31]
nop() [31]
nop() [31]
nop() [31]
nop() [31]
set(pins, 0) [31]
nop() [31]
nop() [31]
nop() [31]
nop() [31]
irq(0)
wrap()
def irqHandler(sm):
self.sm.active(0)
print("Finished")
def __init__(self):
pass
def test(self):
sm = rp2.StateMachine(0, self.blink, freq=2000, set_base=Pin(25))
sm.irq(self.irqHandler)
print(sm)
sm.active(1)
sleep(2)
sm.active(0)
有谁能帮忙解决这个问题吗?
发现状态机0到3使用irq(0到3),机器4到7需要irq(0到3)
解决方案是使用irq(rel(0)),它在所有情况下都有效。唷! !希望这能帮助到其他人。