クラス PIO -- 高度な PIO インタフェース¶
PIO
クラスは RP2040 の PIO (プログラム可能な I/O)インタフェースのインスタンスへのアクセスを提供します。
PIO とやりとりするための好ましい方法は rp2.StateMachine
を使うことです。PIO クラスは高度な利用を目的としています。
PIO プログラムのアセンブルについては rp2.asm_pio()
を参照してください。
コンストラクタ¶
-
class
rp2.
PIO
(id)¶ id で指定した番号の PIO インスタンスを取得します。RP2040 には 0 と 1 の番号の付いた2つの PIO インスタンスがあります。
他の番号の引数が指定されている場合は
ValueError
が発生します。
メソッド¶
-
PIO.
add_program
(program)¶ この PIO インスタンスの命令メモリにプログラム program を追加します。
各 PIO インスタンスのプログラムで使用できるメモリの量は制限されています。PIOのプログラムメモリに十分なスペースが残っていない場合、このメソッドは
OSError(ENOMEM)
を発生します。
-
PIO.
remove_program
([program])¶ この PIO インスタンスの命令メモリからプログラム program を削除します。
プログラムを指定しない場合は、すべてのプログラムを削除します。
すでに削除されているプログラムを削除してもエラーにはなりません。
-
PIO.
state_machine
(id[, program, ...])¶ id で指定した番号のステートマシンを取得します。RP2040 には各 PIO インスタンスに 0 から 3 までの番号が付けられた4つのステートマシンがあります。
引数 program を指定すると、指定のプログラムでステートマシンを初期化します。 StateMachine.init を参照してください。
>>> rp2.PIO(1).state_machine(3) StateMachine(7)
-
PIO.
irq
(handler=None, trigger=IRQ_SM0|IRQ_SM1|IRQ_SM2|IRQ_SM3, hard=False)¶ この PIO インスタンスの IRQ オブジェクトを返します。
MicroPython は、各 PIO インスタンスで IRQ0 のみを使います。IRQ1 は使えません。
IRQ インスタンスは指定の引数で構成されます。