Machine

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

関数

machine.unique_id()

ボードの一意な識別子を持つバイト列を返します。この値はボードの個体ごとに異なります。

machine.reset()

外部 RESET ボタンを押すのと同じようにデバイスをリセットします。

machine.freq()

CPU周波数をヘルツ単位で返します。

machine.disable_irq()

割り込み要求を無効にします。無効にする前の IRQ 状態を返しますが、これは不明瞭な値とみなす必要があります。この戻り値は machine.disable_irq() を呼び出す前の元の状態に割り込みを復元するために machine.enable_irq() 関数に渡す必要があります。

machine.enable_irq()

割り込み要求を再度有効にします。 state パラメータは machine.disable_irq() 関数の最も最近の呼び出しから返された値である必要があります。

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 モジュールでは、物理アドレスを指定してデバイスのメモリから、1バイト(8ビット; mem8)、2バイト(16ビット; mem16)、4バイト(32ビット; mem32)のワードを取得できます。たとえば mem8[0x00] は、物理アドレス 0x00 の1バイトを読み取ります。これには nRF51 レジスタからデータを読み取るなど、さまざまな用途があります。