質問:
Andruinoボードの割り込みピンにセンサー信号を接続する必要があるのはなぜですか?
user3646338
2014-05-17 03:52:20 UTC
view on stackexchange narkive permalink

モーション、ライトなどのAndruinoセンサーに出くわしましたが、すべて、割り込みピンであるAndruinoUnoボードのピン2または3に接続することをお勧めします。これは、HIGHまたはLOWの値を探している場合に特に当てはまります。なぜそれが割り込みピンに接続されるのですか?

1つの例は、CC3000Wifiブレイクアウトとモーションセンサーを使用したことです。両方とも割り込みピン2を占有するために戦っていました。信号をピン4に接続した後、モーションセンサーが正しく機能しないのを見ました[プルアップ抵抗が有効になっています]

必要な場合はどうすればよいですか制限された割り込みピンを使用するセンサーをさらに接続するには、上記のシナリオをどのように処理する必要がありますか?

二 答え:
Ignacio Vazquez-Abrams
2014-05-17 04:39:23 UTC
view on stackexchange narkive permalink

割り込みピンは、デバイスに注意が必要であることをMCUに通知するために使用されます。 INTxピンは、プログラミングが簡単なため、最初に選択されます。それぞれが専用の割り込みベクトル、つまりISRを取得します。

ただし、別のタイプの外部割り込み、ピン変更割り込みがあります。これは、デバイスの任意のPCINTxxピンを介して呼び出すことができます。 '328 any ピンでは、割り込みとして機能できます。

INTとPCINTの主な違いは、PCINTが8のバンクにグループ化されることです。つまり、ISRが呼び出された場合、適切なピンのレベルをチェックする必要があります。これは、バンクが複数のデバイスで共有されていて、割り込みパルス自体が非常に短い場合、割り込みを誤読する可能性があることを意味します。

詳細MCUデータシートの「外部割り込み」および「割り込み」セクションで読むことができます。

Chris Stratton
2014-05-17 18:13:27 UTC
view on stackexchange narkive permalink

Ignacioは、2つのタイプの割り込みの違いについて優れた回答を提供します。しかし、それに加えて、割り込みを使用することさえ普遍的な要件ではありません。

ポーリングも可能ですが、定期的に電話を取り、誰かがあなたに話しかけようとしているかどうかを確認するのと比較されています。

  • 割り込みを使用する利点には、応答の高速化、プログラムが主に他のことを実行している間のバックグラウンド応答、および多くの場合、関連する機能が使用されている低電力スリープモードからプロセッサをウェイクアップすることが含まれます。バッテリー駆動のガジェットで。

  • ただし、ポーリングには役割があります。たとえば、プログラムがタイトループで実行され、とにかく特定の時間に入力に応答してのみアクションを実行できる場合、割り込みサービスルーチンは次のようになります。何かが起こったことをメインプログラムループに伝えるためのフラグを設定するだけで、多くのメリットがある場合とない場合があります。

  • 多くの場合、最良の解決策はハイブリッドアプローチです。割り込みサービスルーチンはイベントを記録します。特に、メインプログラムループがイベントをポーリングする前に消滅または繰り返される可能性のあるイベントを記録します。次に、メインプログラムループが論理決定ポイントに到達すると、フラグまたはイベントキューをチェックして、割り込みサービスルーチンが応答する必要のあるものを記録しているかどうかを確認します。シリアル受信は通常、Arduinoフレームワークでこのように処理されます。



このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...