問題タブ [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.
c++ - タイマー ISR 内の FreeRTOS でグローバル値を使用する
使用:
- Arduino メガ 2560
- ArduinoIDE
- タイマー2
コード:
問題:
volatile int pulse
Timer2 の ISR で使用したいグローバル変数です。ではreceiveTask
、キューから値を取得し、パルス値として設定します。
しかし、pulse の値が 0 になるたびに。
embedded - ISR で時期尚早の「返品」が発生するとどうなりますか?
AVR-GCC 4.9.2 を使用していますが、AVR の ISR で早期復帰を行うとどうなるか知りたいですか?
命令return
に変換されますか? reti
それとも、自分自身を含める必要がありreti()
ますか?
舞台裏で何が起こっているのかについての詳細な説明を探しています。
c - ISR + コード、カウント コードを ISR ルーチンに統合
私はPICデバイス用のCコードのセクションを持っています.4つの別々のリレーを事前定義されたパターンに作動させ、それぞれが時間と発生頻度をカウントすることによって個別に設定されています. このパターンは無限に続きますが、標準的な delay_ms のタイミングが十分に正確ではないことがわかりました。私はそれを ISR ルーチンに変換したいと思います。閲覧のために標準的な遅延に依存する以下のコードを同封します。私の主な関心事は、このコードを ISR に抽象化する方法です。実際の ISR ルーチンにこのすべてのコードを貼り付けないことがわかっているためです。アドバイスをいただければ幸いです。
watchdog - WDT を使用した ISR のコード構造は?
Watchdog
割り込みサービス ルーチンを含む埋め込みコードのどこにリセットを配置する必要がありますか?
メインループで、または割り込みサービスセクションで?
c - 最初の割り込みだけが機能するのはなぜですか?
私は個人的なプロジェクトに取り組んでおり、マルチメーターをハッキングしてバックライトを追加しています。Attiny13 を使用しています。
次のコードがあります。
問題は、最初の割り込み (ボタンを押す) でのみウェイクアップし、それを実行してから何も実行しないことです。スリープを使用しない場合 (while(1); のみを残す)、プログラムは期待どおりに実行されます。何が問題になるか知っていますか?
LE: 完全なコードを追加。私が持っている場合:
その後、すべて正常に動作します。消費を減らすために睡眠を使いたいだけです。
assembly - 8086 アセンブリ キーボード ISR の実装
プログラム用に作成したキーボード割り込みサービス ルーチン (キーを押すたびに "hello world" を出力する必要があります) が、dosbox で .exe を実行したときに 1 回しか発生しない理由がわかりません。コードは次のとおりです。
別の割り込み (システム クロック 08h) を使用して、レジスタのプッシュとポップなど、いくつかのことを試しましたが、どれも機能しませんでした。「hello world」というメッセージが画面に表示されるため、ISR が少なくとも 1 回実行されることはわかっていますが、キーを押すたびに印刷されるはずで、なぜ印刷されないのかわかりません。
どうすればこれを解決できますか?
assembly - 操作のための一連のマイクロ操作?
次の一連のマイクロ操作を考えてみましょう。
このシーケンスで実行できる操作は次のうちどれですか?
- 命令フェッチ
- オペランドフェッチ
- 条件分岐
- 割り込みサービスの開始
答えはオプション (4) です。
私の試み:
- 命令フェッチ : フェッチ命令: PC のアドレスから命令コードを読み取り、IR に配置します。( IR ← メモリ[PC] )
- Operand fetch : 必要に応じてメモリからオペランドをフェッチします。オペランドがメモリ アドレスの場合は、メモリ読み取りサイクルを開始してそれらを CPU レジスタに読み込みます。オペランドがレジスタではなくメモリ内にある場合、オペランドのメモリ アドレスは実効アドレス、または略して EA と呼ばれます。したがって、オペランドのフェッチは、Register ← Memory[EA] として表すことができます。今日のコンピュータでは、CPU はメモリよりもはるかに高速であるため、通常、オペランドのフェッチが完了するまでに複数の CPU クロック サイクルが必要です。
- 条件付き分岐命令は、PSW 内のロケーション・カウンターを、レジスターで指定されたアドレスに設定するか、条件が満たされた場合 (およびレジスターが 0 でない場合)、レジスターに 12 ビット・オフセットを加えたものに設定します。
- 割り込みサービス ルーチン (ISR) は、ハードウェアが割り込みに応答して呼び出すソフトウェア ルーチンです。ISR は割り込みを調べて、その処理方法を決定します。ISR は割り込みを処理し、論理割り込み値を返します。
オプションで与えられた操作のマイクロ操作を順番に説明できますか?
c - ISR を毎秒実行するように設定する方法 - C Atmega328p
センサーの入力を 0.5 秒ごとにチェックする必要があるコードを書いています。センサーの入力が変化するまでコードを実行したいので、ISR を使用したいと考えています。
この ISR を 0.5 秒ごとに実行するように設定するにはどうすればよいですか?
ありがとう :)