タグ

ブックマーク / vintagechips.wordpress.com (2)

  • Linuxの流儀でGPIOを監視する

    Raspberry PiのGPIOにスイッチをつないでその状態を読み取る実験。これがもしArduinoだったらポートを読み続ければいいのだけれど、Raspberry PiはLinuxの流儀でやる必要がある。手短に言うと時間を長く占有してはいけない。Linuxは難しいことを比較的簡単に実現するかわりに簡単なことを比較的難しくする。 先達のやりかたを見るとWiringPiやbcm2835ライブラリでピンに割り込みを設定する例が多い。この場合、割り込み関数で頑張ればいろいろな処理ができる。でも、ピンの変化を捉えるだけなら/sys/class/gpio/ピンの名前/edgeにrisingかfallingかbothを書き込むのが手っ取り早い。割り込み関数を呼び出さないから正確には「イベントを発生するだけ」かも知れないが、似たようなもの。そのイベントはpoll関数(システムコール)で検出できる。 スイ

    Linuxの流儀でGPIOを監視する
    iww
    iww 2018/02/09
  • /sys/class/gpio/gpioxx/active_low

    Raspberry Piの/sys/class/gpio/gpioxx/の下層にあって公式に説明されていないものの働きを調べる。active_lowは初期値が0。ここへ1を書くとedgeに書き込んだfallingとrisingの意味が入れ替わる。ueventは動的に管理されるデバイスに付きもののファイル。powerは、まだ判明していない。たぶん省電力コントロール用で、Raspberry Piには実装されていない。

    /sys/class/gpio/gpioxx/active_low
  • 1