[MicroPython] クラス内メソッドをコールバックに指定したい
Q&A
Closed
解決したいこと
Raspberry Pi PicoでMicroPythonを使っています。
MicroPython v1.17 on 2021-09-02; Raspberry Pi Pico with RP2040
定期的に動作させる処理をクラス内に記述したいのですが
callback にクラス内のメソッドを指定する方法を教えてほしいです。
該当するソースコード
クラス内の ticktack メソッドが1秒ごとに呼ばれることを期待しています。
scheduler.py
import machine
from machine import Timer
class Scheduler():
def start(self):
tim = Timer()
tim.init(freq = 1, mode = Timer.PERIODIC, callback = self.ticktack)
def ticktack(self):
print('timer in class')
if __name__ == '__main__':
sch = Scheduler()
sch.start()
発生している問題・エラー
callback に self.ticktack と指定すると下記のエラーになります
tim.init(freq = 1, mode = Timer.PERIODIC, callback = self.ticktack)
TypeError: function takes 1 positional arguments but 2 were given
callback に ticktack と指定すると下記のエラーになります
tim.init(freq = 1, mode = Timer.PERIODIC, callback = ticktack)
NameError: name 'ticktack' isn't defined
0