0

問題

私は最初にこの質問を投稿しましたが、これは明らかに私の顧客の仕様を満たしていないものでした。したがって、私は問題を再定義しています:

問題をもう少し理解するには、元の投稿のタイミング図を使用できます。遅延器はプラットフォームに依存しない必要があります。正確に言うと、ジョブ スケジューラを実行していますが、現在の遅延器はそれと互換性がないようです。私が立ち往生しているのは、遅延器の「独立」ビットです。Probe(サンプリング時間のプローブ) とVariable Integer Delayブロックを使用して、SIMULINK の遅延器を既にノックアウトしています。しかし、承認段階で、スケジューラーがそのような構成に準拠しておらず、C/C++ アプリケーションで実行される while ループのような、より本質的で基本的なものにする必要があることに気付きました。

初期解

私が考える解決策は次のとおりです。

  1. と呼ばれるグローバルで静的なタイム スライス変数を定義しますtslc。基本的に、これはスケジューラーが実行される頻度です。単位は秒かもしれません

  2. 次の本体を持つ関数を定義します。

    void hold_for_secs(float* tslc, float* _delay, float* _tmr, char* _flag) {
         _delay[0] -= tslc[0];
         if (_delay[0] < (float)(1e-5)) {
    
            _flag[0] = '1';     
    
         } else {
    
               _flag[0] = '0';            
    
         }
    
    }
    

ユーザーは関数コーディングのスキルが低いことを許してください。しかし、私は単に解決策を考え出そうとしました。ここでの提案で人々が私を少し助けてくれたら本当にありがたいです!

コンピューティング プラットフォーム Windows 2000 サーバー

ターゲット コンピューティング プラットフォーム 組み込みシステム カード - PCI スロットの 1 つに接続される最新のグラフィックス カードまたはサウンド カードに似たもの。テストベッドでテストを行い、最終的にその組み込みシステム カードにソリューションを実装します。

4

0 に答える 0