プロが教える店舗&オフィスのセキュリティ対策術

raspberry pi に多数の押しボタンSWをつけて、使用するプログラムを切り替えたいと考えています。
どのSWが押されたかを知る方法はありませんか。特定のSWが押されたか知るプログラム例はかなり見つかりますが、わりこみの原因を知る方法は、見つかりませんでした。
また、一定の間隔で、割り込みを発生させること(タイマー割り込み)はできるでしょうか。

A 回答 (1件)

raspberry piってことは基本Linuxだよね。

割込み処理を書くプログラムはデバイスドライバレベル? それともアプリケーションプロセスレベル?
デバイスドライバレベルのプログラムを書くならSWごとに異なる割込み番号で割込みが掛かるか、割込みが掛かった時に特定のポートをみて押されたSWを特定するか、ハードウェアによってやり方が違うので確認のこと。
アプリケーションプロセスレベルのプログラムを書くならSW特定はSWデバイスのドライバ仕様を確認する。SWデバイスをread待ちしてSWが押されたら押されたSWの番号が読み取れるとか、そういう感じかな。

タイマ割込みはカーネルで定期的に処理しているので、カーネル内なら定期実行したい処理をタイマハンドラにして登録すれば実行できるかと。
プロセスからだとインターバルタイマーを設定してアラームシグナルを受け取って実行する感じ。
    • good
    • 0
この回答へのお礼

御応答いただき、ありがとうございます。このところ、体調が悪く、PCを使う気に、なりませんでした。
残念ながら、お答えの内容を私の実力では、理解できませんでした。やむを得ず、割り込みが、
はっていしたら、全てのSWの状態を調べて、該当するSWを探すと、言う方法をとりました。

お礼日時:2017/08/11 11:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!