1

マイクロコントローラ/組み込みシステムの低レベル割り込みに相当する汎用プログラミングはありますか?

私は、似ているように見えるが十分に一般的ではないイベント (マウスイベントなど) の概念に漠然と精通しています。特にC/C++で、カスタムイベント、つまり、マウスポインターが特定の領域に移動したときなど、ユーザー定義の条件によってトリガーが決定されるイベントを処理するメカニズム(ネイティブまたはその他)はありますか?特定のユーザー アクションが発生しますか?

コンテキストを提供するために、ユーザーが画面上の特定の場所をポイントしたときに特定のアクションをトリガーしたい OpenCV ベースのインタラクティブなプロジェクトに取り組んでいます。

ビデオストリームの各反復でポインターが現在画面上のどこかにあるかどうかを確認するのは、特に計算の無駄のようです。定義済みの条件に基づいて関数呼び出しを自動化したいと思います。

または、この手順を改善できる他の(より効率的な)メカニズムはありますか?

ありがとう。

4

1 に答える 1

1
  1. C/C++ には、microP や microC のような割り込みプログラミングはありません。
  2. 画面がタッチ スクリーンの場合は、オペレーティング システムの SDK または OS の API を取得して、タッチが発生したときに通知を取得しようとします。(OS は、タッチ、キーパッドの押下、またはマウスの移動のための割り込みテーブルを内部的に維持します。そのようなイベントで実行したいロジックをプログラムすることができます。それ以上のものはありません..)。
  3. 触れていない場合は、センサー、通常はカメラ (Web カメラ) を使用してユーザーの位置を監視する必要があります。そのためには、カメラの各フレームをチェックして、ユーザーの位置を決定する必要があります。 編集 :
  4. あなたが言ったことは正しい方法です。各フレームをチェックすることをお勧めします。そうしないと、システムの応答が遅くなります。カウンターを 1 に割り当て、フレームごとに増加させ、目的の値に到達したらリセットすることができます。これは無限ループとほぼ同じです。
  5. または、キーボードからいくつかのキーを受け入れてループを抜け出すことができます (OpenCV にはそのような機能があります)。
  6. もう少し高度なアプローチは、実行中のプログラムのメイン スレッドとは別のスレッドでカメラからフレームを取得することです。したがって、必要なことは、そのスレッドを開始して停止することだけです。
于 2013-01-13T16:28:18.530 に答える