[创建对绑定方法的引用时,会创建对象的实例。这意味着ISR无法将绑定方法传递给函数。一种解决方案是在类构造函数中创建对绑定方法的引用,并在ISR中传递该引用。例如:] [1]
class Foo():
def __init__(self):
self.bar_ref = self.bar # Allocation occurs here
self.x = 0.1
tim = pyb.Timer(4)
tim.init(freq=2)
tim.callback(self.cb)
def bar(self, _):
self.x *= 1.2
print(self.x)
def cb(self, t):
# Passing self.bar would cause allocation.
micropython.schedule(self.bar_ref, 0)
为什么在注释说明的地方进行分配?