タグ付けされた質問 「interrupts」

コンピュータのプログラムフローを制御するメカニズム。割り込みを受けると、コンピューターはその現在の動作状態と、生成された割り込みに依存するコードの実行に対する変更を保存します。割り込みは、ハードウェアソースまたはソフトウェアソースのいずれかです。ソフトウェアによる割り込みはトラップと呼ばれます。これはポーリングの代替メカニズムであり、ほとんどのI / O、マルチタスク、および制御が実装される基本です。

2
AVR割り込みサービスルーチンが期待どおりに実行されない(命令オーバーヘッド?)
7つの入力を持つ小さなロジックアナライザーを開発しています。ターゲットデバイスはATmega16820MHzのクロックレートです。ロジックの変更を検出するには、ピン変更割り込みを使用します。今、私はこれらのピンの変化を検出できる最低のサンプルレートを見つけようとしています。私は、最小5.6 µs(178.5 kHz)の値を決定しました。このレートを下回るすべての信号は適切にキャプチャできません。 私のコードはC(avr-gcc)で書かれています。私のルーチンは次のようになります。 ISR() { pinc = PINC; // char timestamp_ll = TCNT1L; // char timestamp_lh = TCNT1H; // char timestamp_h = timerh; // 2 byte integer stack_counter++; } キャプチャした信号の変化はにありpincます。それをローカライズするために、4バイト長のタイムスタンプ値があります。 データシートで私が読んだ割り込みサービスルーチンは、ジャンプするのに5クロック、メインプロシージャに戻るのに5クロックかかります。私の各コマンドのISR()実行には1クロックかかると想定しています。要するに、5 + 5 + 5 = 15クロックのオーバーヘッドがあるはずです。1クロックの持続時間は、20MHzのクロックレートに従う必要があります1/20000000 = 0.00000005 = 50 ns。秒単位の合計オーバーヘッドは、次のようになります15 * 50 ns = 750 ns = …

3
割り込みルーチンのCPU負荷の測定
固定周波数でディスプレイを更新するisrがあります。オーバーヘッドを最小限に抑え、他の処理のためにできるだけ多くのCPU時間を開いておくようにルーチンを調整したいのですが、CPU負荷を判断するためのメトリックを収集する適切な方法がありません。 アセンブリを見て、ルーチンを分析することはできましたが、それを正確に行うための忍耐力や能力はありません。ISRによって占有されているCPU時間の単純なパーセンテージだけで、非常に細かい結果も必要だとは思いません。 isrがアクティブなときにのみピンをHighに設定し、外部で測定することができます。コードのオーバーヘッドは最小限ですが、何を測定するかわかりません。オシロスコープなどは持っていません。デューティサイクルを測定するために別のマイクロを使用する簡単なICまたは簡単な方法はありますか?専用の周波数カウンターチップについて聞いたことがありますが、デューティサイクルについて何かありますか?

1
割り込みハンドラとC ++を備えたKeil ARMコンパイラのバグ?
LPC1114用のKeil ARMコンパイラでの割り込みハンドラの記述に問題があります。C ++でプログラムを作成して--cppコンパイラオプションを指定すると、割り込みハンドラーからのすべてのコードが消え、無限ループに置き換えられます。私は自分の悩みを説明する簡単なプログラムを書きました。 #include "LPC11xx.h" // LPC11xx definitions #define SYSTICK_DELAY 120000 // for 10 ms systick @ 12MHz osc void SysTick_Handler(void) { __NOP(); } int main (void) { SystemInit(); // from system_LPC11xx.c SysTick_Config(SYSTICK_DELAY); // from core_cm0.h // Loop forever while (1) __NOP(); } --cppコンパイラオプションを使用してこのコードをコンパイルしようとすると、disasmで無限ループが発生します。 SysTick_Handler PROC EXPORT SysTick_Handler [WEAK] B …
8 c++  interrupts  keil 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.