machine --- ハードウェア関連の関数

machine モジュールは、特定のボード上のハードウェアに関連する固有の関数を含んでいます。このモジュールのほとんどの機能はシステム上のハードウェアブロック(CPU、タイマー、バスなど)への直接的かつ無制限のアクセスと制御を実現します。誤って使用すると、誤動作、ロックアップ、ボードのクラッシュ、および極端な場合にはハードウェアの損傷を招く可能性があります。

machine モジュールの関数とクラスが使うコールバックについての注記: これらのコールバックはすべて、割り込みコンテキストでの実行とみなされるべきです。これは ID >= 0 の物理デバイスと、-1 などの負のIDを持つ「仮想」デバイスの両方に当てはまります(「仮想」デバイスであっても、実際のハードウェアと実際のハードウェア割り込みのがある上に小さく用意されているものです)。 Writing interrupt handlers を参照してください。

その他の関数

machine.unique_id()

ボード/SoC の一意な識別子を持つバイト列を返します。基盤となるハードウェアが許せば、この値はボード/SoC の個体ごとに異なります。長さはハードウェアによって異なります(短い ID が必要な場合は、完全な値の部分文字列を使用してください)。一部の MicroPython ポートにおいて、ID はネットワークの MAC アドレスに対応します。

machine.time_pulse_us(pin, pulse_level, timeout_us=1000000)

指定の pin にパルスの持続時間をマイクロ秒単位で返します。 pulse_level 引数には、低パルスの時間計測で 0、高パルスの時間計測で 1 を指定します。

ピンの現在の入力値が pulse_level と異なる場合、関数は最初にピン入力が pulse_level に等しくなるまで待機し(*)、次にそのピンが pulse_level に等しい時間を測ります(**)。ピンが既に pulse_level に等しい場合、計測はすぐに開始されます。

タイムアウトが発生した場合、上記の(*)の状態を待っていた場合は -2 を返し、上記の(**)の場合は -1 を返します。タイムアウト時間は両方のケースで同じで、 timeout_us (マイクロ秒単位)で指定します。

machine.rng()

24ビットのソフトウェア生成乱数を返します。

可用性: WiPy。

定数

machine.IDLE
machine.SLEEP
machine.DEEPSLEEP

IRQ ウェイク値。

machine.PWRON_RESET
machine.HARD_RESET
machine.WDT_RESET
machine.DEEPSLEEP_RESET
machine.SOFT_RESET

リセット原因。

machine.WLAN_WAKE
machine.PIN_WAKE
machine.RTC_WAKE

起床理由。