現在開発している組み込み系システムのシミュレートをVCで行いたいと考えています。
組み込み系のシステムは簡単に言うと、
普段はメインループでくるくる回っており、1ms毎にタイマ割り込みが発生し、変数の値を書き換え、メインループではその変数の変化によって何か処理を実行するというものです。
このようなシステムをVCでできるだけ同じようにシミュレートするため、マルチスレッドを用いようと考えているのですが、以下の性質を実現することは可能でしょうか?
・メインスレッド実行中はタイマ割り込みスレッドは割り込み可能。
・タイマ割り込みスレッド実行中はメインスレッドは割り込んでこない。
・メインスレッドで特定の区間タイマ割り込みスレッドの割り込みを禁止できる。
・高速シミュレートを行いたいため、割り込みの禁止などはできるだけ低負荷で行いたい。(ミリ秒単位だとNG)
・複数の割り込みスレッドがある場合、各スレッドごとに割り込みレベルを設け、このレベル以下を割り込み禁止など行いたい。
スレッド以外の実現方法などあればそちらもご教授願いたいです。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
思いつくまま書いてみますので、検討してみてください。
マルチメディアタイマーを使うと比較的安定した間隔で、別スレッドからコールバック関数がコールされます。
これがタイマー割り込みハンドラに該当する。
ハンドラの入り口で、自身より下位のスレッドをサスペンドし、出口でレジュームする。割り込みのシミュレートね。割り込みを2本以上作るなら、タイミング問題が出るので、スレッドの操作をクリティカルセクションで排他したほうがよい。
メインスレッドで排他したい箇所には、排他用のクリティカルセクションをかける。ハンドラ側はスレッド操作の内側にクリティカルセクションをかける。
回答ありがとうございます。
割り込みスレッド実行時にメインループスレッドに対してサスペンド処理を行ったところ、私のやり方では25msくらいの時間がかかりました。これでは1msタイマなどのシミュレートには使用できませんでした。やり方が悪いのかwindowsではこれが限界なのかわかりませんが、いろいろ試してみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 教育ソフト・学習ソフト vbsで分割した値をそれぞれの変数に 1 2022/10/17 19:52
- Visual Basic(VBA) 1つの入力フォルダの値を読み込み、3分割をして新しい変数に代入する方法を教えていただきたいです。 読 4 2022/10/17 20:52
- 格安スマホ・SIMフリースマホ uqモバイル使用の方、割引の仕組みに詳しい方、教えてください・・ 2 2023/04/24 15:04
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- 郵便・宅配 クロネコヤマトについて、持ち込み発送を簡単に済ませるには?(集荷と比べて面倒) 3 2023/02/08 23:58
- FTTH・光回線 ソフトバンク光2年縛り IP電話番号 同番移行出来ない? 光回線変更は面倒で難しいですか? 1 2023/01/08 21:54
- 簿記検定・漢字検定・秘書検定 日商簿記2級の商業簿記の新株発行(増資)について質問です。 今、日商簿記2級の受けようと独学で宅建勉 1 2022/07/30 09:45
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- YouTube YTで再生回数が累計何回以上となると、ミッドロール広告が割り込んで来るか? 1 2023/07/08 15:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スーパーのレジで並んでいたら...
-
irqbalance って
-
AKI-H8/3048Fでのタイマ割り込み
-
アトメル社製ATtiny2313マイコ...
-
pic 複数の割り込み関数 切り分...
-
アセンブラのタイマー割り込み
-
picタイマ0割り込みについて
-
[コンピュータアーキテクチャ]...
-
インバウンドで迷惑している人...
-
マイコンの割り込みについて教...
-
一定時間操作がなかったら、と...
-
H8/3052F/IRQを使った割り込み
-
電車で待機列の割り込みについ...
-
USB機器からのデータ受信による...
-
PIC16F84AのRBポート変化割り込...
-
割り込み処理から引数を取得す...
-
Macターミナルで実行中のプログ...
-
VBAの配列サイズとメモリに関して
-
なんかC言語でプログラム書いて...
-
VBSの処理中一旦処理を止めて再...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
インバウンドで迷惑している人...
-
pic 複数の割り込み関数 切り分...
-
スーパーのレジで並んでいたら...
-
ショッピング
-
Excelでタイマーの一時停止する...
-
電車で待機列の割り込みについ...
-
CPUの処理量を減らすコーデ...
-
C言語でPICマイコン開発
-
【組込み】割り込み中のstatic...
-
Amazonfireタブレットにわから...
-
マイコン C言語 割り込み処理...
-
USB機器からのデータ受信による...
-
一定時間操作がなかったら、と...
-
VB.net 割り込みの禁止
-
ウォッチドッグタイマ(WDT)の...
-
電車乗車時、並んでいるのに割...
-
USJでの割り込み
-
VB6でSendKeyを利用したTab移動...
-
PICでのプログラムによるチャタ...
-
割り込み中に例外異常
おすすめ情報