monet3938
2015年12月21日 16時44分
お世話になっております。
片山と申します。
現在Armadillo-840のCON7、CON8を使用して複数のGPIO割込み監視を実現しようと考えております。
(CON7、CON8は拡張基板を使用し、各ピンにA接点SW、B接点スイッチ等を取り付け用途考えております。)
そこで、お聞きしたいのですがArmadillo-800シリーズではWiringPiのようなGPIO用のライブラリ等が用意されていないのでしょうか?
本フォーラム(https://armadillo.atmark-techno.com/forum/armadillo/1441)のソースコードを参考に、
複数ピンに対応するようにゴリゴリとコードを記述する必要があるのでしょうか?
以上、初歩的な質問内容ですがよろしくお願い致します。
at_yashi
2016年1月12日 11時00分
> 本フォーラム(https://armadillo.atmark-techno.com/forum/armadillo/1441)のソースコードを参考に、
> 複数ピンに対応するようにゴリゴリとコードを記述する必要があるのでしょうか?
情報、ありがとうございます。
そうですね。現状では WiringPi のようなものがありません。
sysfs になって、スクリプトでも操作できるようになったので、
Armadillo-200/400 で採用していた gpioctrl も、やめてしまいました。
blog[1] では、「Armadillo-IoTでgpioctrlを使う」というのも公開しています。
せっかく良い情報をいただいたので、glibをつかって event loop [5]でイベントドリブンに
操作するものを作成してみました。gist[3] においておきます。
上記のように記載すると gpio98 (a840 lcd の sw2) を押すと "hoge"と、gpio99 (sw3) を押すと
"fuga" と表示されるプログラムです。こんな感じのイメージであってますか?
debian を使うときのために、autotools対応した library も libatgpio [4]として github に
おいておくので、もしよければ使ってください。
足りない機能があれば教えてもらえると嬉しいです。すぐ気がつく問題としては、
a) 割り込み対応していない GPIO は監視できなかったり、b) チャタリングの設定を
しないと、バタバタ動くなどありますが...。
あと、a840 lcd の sw は、デフォルトで GPIO Keyに強制選択になっているので、
patch [6] をあてて外してください。
参考になれば、幸いです。
[1]: https://users.atmark-techno.com/blog
[2]: https://users.atmark-techno.com/blog/615/1379
[3]: https://gist.github.com/yashi/480924038abe312e3e7e
[4]: https://github.com/yashi/libatgpio
[5]: https://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html
[6]: https://github.com/yashi/libatgpio/blob/master/patches/a840-disable-unc…