問題タブ [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 投票する
0 に答える
239 参照

arduino - Arduino TimerOne ライブラリ割り込みの問題

私は、Arduino TimerOne ライブラリの最新版を使用しています。

TimerOne.attachinterrupt(xxx) 関数を使用しない場合、ピン 10 は、指定されたパラメーターごとに適切な PWM 信号を生成します。

TimerOne.Attachinterrupt(isr,frequency) または単に ...(isr) を呼び出すと、呼び出しは「返されません」。つまり、ピン 10 の信号が開始されず、ループに入りません。アタッチを呼び出す前に LED をオンにしてから、次の行でオフにしますが、LED がオフになることはありません。

ISR は、グローバルな揮発性変数のみをデクリメントします

AttachISR が何かを壊しているようです...コードのセットアップは次のとおりです。

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

multithreading - スレッド化された ISR からデータを交換する安全で簡単な方法は何ですか? (ラズベリーパイ)

SPI デバイスからのデータを処理する Raspberry Pi で C/C++ ユーザー空間アプリケーションを開発しようとしています。IRQ イベントで pthreaded 割り込みハンドラーから呼び出される関数 (実際の割り込みハンドラー) を登録するWiringPiライブラリ (関数wirePiISR ) を使用しています。

STL コンテナーはスレッド セーフではないと聞きましたが、コールバック関数の実行中にミューテックス ロックを設定し、そこにあるバッファー/コンテナーにアクセスするときにメイン スレッドをロックするだけで十分でしょうか?

配線PiISRを介して登録された私の「実際の割り込みハンドラ」は次のようになります

または、スレッド化された ISR とメイン スレッド間のデータ交換を実現する簡単な方法はありますか?

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

timer - Arduino メガのタイマー割り込みで ADXL345 を使用するにはどうすればよいですか

Arduino megaでタイマー割り込みにADXL345を使いたいです。

しかし、それはうまくいきません。

これが私のコードです:

ISR() 関数は 1 ミリ秒ごとに実行されますが、ISR() のコードは 650 マイクロ秒しかかかりません。

なぜうまくいかなかったのかわかりません。

loop() ですべてのことを行うと、正常に動作します。

誰でも私を助けることができますか?

前もって感謝します、

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

c - Cのソフトウェア割り込み?

ソフトウェア割り込みとハードウェア割り込みの概念を理論的に理解しましたが、ソフトウェア割り込みの例を挙げて説明することはできますか?? それは私にとって大きな助けになるでしょう。

Windows または Linux オペレーティング システム用の C プログラムの例

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

c - UART チェック受信バッファ割り込みとポーリング

こんにちは、Nios で割り込みを使用して Uart を使用する方法を学習していますが、開始方法がわかりません。ポーリングではできましたが、割り込みの使用を開始する方法がわかりません。

どんな助けでもいただければ幸いです

これが私のコードです

uart_checkRecvBuffer の代わりに uart_RecvBufferIsr を使用するとします。この状況にどのように対処できますか?

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

c - C: UART、ISR、循環 FIFO バッファ: バイトが間違った順序で送信されることがある

断続的なバグで髪を引っ張っています。(PIC16F77 で) バイトを非同期的に送受信しており、送受信用の循環ソフトウェア FIFO バッファを実装し、バイトを送信できるか受信したときにトリガーされる割り込みサービス ルーチンと組み合わせました。

問題は、送信されるバイトが間違った順序で送信されることがあるということです。

次のいずれかをいただければ幸いです。

  1. デバッグに関するアドバイス、または
  2. コードの問題を見つける支援

これまでの進捗状況:

  • いくつかのバイトが受信されている場合にのみ発生するようですが、さらに絞り込むことに失敗しました。私の知る限り、アンダーランやオーバーランは発生していません。
  • 次のいずれかに変更send_char()すると、問題なく動作します: 1. ハードウェア バッファーのスペースを待って、バイトを直接入れることによってソフトウェア バッファーをバイパスするか、2. ハードウェアにスペースがある場合でも、バイトをソフトウェア バッファーに入れます。バッファ。

コード: (ハードウェア変数の説明については、質問の下部を参照してください)

ハードウェア変数の説明:

参考までに、ハードウェア レジスタとフラグにマップされる (揮発性) 変数を次に示します。

また、以下は、複数のグループ化された操作をアトミックに保つために割り込みを一時停止/再開する特別なインライン関数です。(ISR は、他の割り込みを含め、何によっても中断できません)

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

c - リアルタイム Linux オペレーティング システムの C で割り込みサービス関数を作成する方法は?

シナリオ : クライアントがデータを送信し、サーバーがイーサネット層 (udp) を介してクライアントからデータを受信して​​います。サーバーが IP 層 (カーネル) でクライアントからデータを受信したとき。クライアントがデータを実行するとカーネルとカーネルに割り込みますので、ネットワークサービスカードからの割り込みをキャッチする割り込みサービス関数を作成したいと思います。

誰かがそれについてどうやって私を助けることができますか?