問題タブ [isr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
620 参照

c++ - タイマー ISR 内の FreeRTOS でグローバル値を使用する

使用:

  • Arduino メガ 2560
  • ArduinoIDE
  • タイマー2

コード:

問題:

volatile int pulseTimer2 の ISR で使用したいグローバル変数です。ではreceiveTask、キューから値を取得し、パルス値として設定します。

しかし、pulse の値が 0 になるたびに。

0 投票する
1 に答える
1188 参照

embedded - ISR で時期尚早の「返品」が発生するとどうなりますか?

AVR-GCC 4.9.2 を使用していますが、AVR の ISR で早期復帰を行うとどうなるか知りたいですか?

命令returnに変換されますか? retiそれとも、自分自身を含める必要がありreti()ますか?

舞台裏で何が起こっているのかについての詳細な説明を探しています。

0 投票する
2 に答える
587 参照

c - ISR + コード、カウント コードを ISR ルーチンに統合

私はPICデバイス用のCコードのセクションを持っています.4つの別々のリレーを事前定義されたパターンに作動させ、それぞれが時間と発生頻度をカウントすることによって個別に設定されています. このパターンは無限に続きますが、標準的な delay_ms のタイミングが十分に正確ではないことがわかりました。私はそれを ISR ルーチンに変換したいと思います。閲覧のために標準的な遅延に依存する以下のコードを同封します。私の主な関心事は、このコードを ISR に抽象化する方法です。実際の ISR ルーチンにこのすべてのコードを貼り付けないことがわかっているためです。アドバイスをいただければ幸いです。

0 投票する
1 に答える
228 参照

watchdog - WDT を使用した ISR のコード構造は?

Watchdog割り込みサービス ルーチンを含む埋め込みコードのどこにリセットを配置する必要がありますか?

メインループで、または割り込みサービスセクションで?

0 投票する
1 に答える
397 参照

c - 最初の割り込みだけが機能するのはなぜですか?

私は個人的なプロジェクトに取り組んでおり、マルチメーターをハッキングしてバックライトを追加しています。Attiny13 を使用しています。

次のコードがあります。

問題は、最初の割り込み (ボタンを押す) でのみウェイクアップし、それを実行してから何も実行しないことです。スリープを使用しない場合 (while(1); のみを残す)、プログラムは期待どおりに実行されます。何が問題になるか知っていますか?

LE: 完全なコードを追加。私が持っている場合:

その後、すべて正常に動作します。消費を減らすために睡眠を使いたいだけです。

0 投票する
2 に答える
1468 参照

assembly - 8086 アセンブリ キーボード ISR の実装

プログラム用に作成したキーボード割り込みサービス ルーチン (キーを押すたびに "hello world" を出力する必要があります) が、dosbox で .exe を実行したときに 1 回しか発生しない理由がわかりません。コードは次のとおりです。

別の割り込み (システム クロック 08h) を使用して、レジスタのプッシュとポップなど、いくつかのことを試しましたが、どれも機能しませんでした。「hello world」というメッセージが画面に表示されるため、ISR が少なくとも 1 回実行されることはわかっていますが、キーを押すたびに印刷されるはずで、なぜ印刷されないのかわかりません。

どうすればこれを解決できますか?

0 投票する
1 に答える
2527 参照

assembly - 操作のための一連のマイクロ操作?

次の一連のマイクロ操作を考えてみましょう。

このシーケンスで実行できる操作は次のうちどれですか?

  1. 命令フェッチ
  2. オペランドフェッチ
  3. 条件分岐
  4. 割り込みサービスの開始

答えはオプション (4) です。

私の試み:

  1. 命令フェッチ : フェッチ命令: PC のアドレスから命令コードを読み取り、IR に配置します。( IR ← メモリ[PC] )
  2. Operand fetch : 必要に応じてメモリからオペランドをフェッチします。オペランドがメモリ アドレスの場合は、メモリ読み取りサイクルを開始してそれらを CPU レジスタに読み込みます。オペランドがレジスタではなくメモリ内にある場合、オペランドのメモリ アドレスは実効アドレス、または略して EA と呼ばれます。したがって、オペランドのフェッチは、Register ← Memory[EA] として表すことができます。今日のコンピュータでは、CPU はメモリよりもはるかに高速であるため、通常、オペランドのフェッチが完了するまでに複数の CPU クロック サイクルが必要です。
  3. 条件付き分岐命令は、PSW 内のロケーション・カウンターを、レジスターで指定されたアドレスに設定するか、条件が満たされた場合 (およびレジスターが 0 でない場合)、レジスターに 12 ビット・オフセットを加えたものに設定します。
  4. 割り込みサービス ルーチン (ISR) は、ハードウェアが割り込みに応答して呼び出すソフトウェア ルーチンです。ISR は割り込みを調べて、その処理方法を決定します。ISR は割り込みを処理し、論理割り込み値を返します。

オプションで与えられた操作のマイクロ操作を順番に説明できますか?

0 投票する
1 に答える
4370 参照

c - ISR を毎秒実行するように設定する方法 - C Atmega328p

センサーの入力を 0.5 秒ごとにチェックする必要があるコードを書いています。センサーの入力が変化するまでコードを実行したいので、ISR を使用したいと考えています。

この ISR を 0.5 秒ごとに実行するように設定するにはどうすればよいですか?

ありがとう :)