simulink モデルがあり、Generic Real-Time ターゲットの simulink コーダーを使用してコードを生成します。次に、生成されたファイル (*.c と *.h) を MPLAB のプロジェクトにコピーします。ここに main.c ファイルがあり、ここでは MdlStart() を使用してモデルを 1 回初期化し、無限ループで MdlOutputs() と MdlUpdate() を使用してモデルを実行します。すべて正常に動作します。
実際には、モデルの実行を高速化したいので、モデルをサブシステムに分割し、必要な場合にのみサブシステムを実行したい (たとえば、いくつかのサブシステムを毎回実行し、一部を数ミリ秒ごとに実行したい)毎回の)。モデルをサブシステムに分割し、サブシステムごとに異なる機能を取得できるように、すべてのサブシステムをアトミックにすることもできました。現在、これらの異なるサブシステムの関数は、MdlOutputs() および MdlUpdate() から呼び出されます。したがって、モデルが実行されるたびに実行されます。
実際、MPLAB プロジェクトでタイマーを使用して、100ms ごとにいくつかのサブシステムを実行したいと考えています。また、自動生成された *.c および *.h ファイルも変更したくありません。
したがって、これらのサブシステムの関数を MdlOutputs() および MdlUpdate() を介して毎回実行する代わりに、自動生成された *.c および *.h ファイルに触れることなく、main.c ファイルからサブシステムの関数を呼び出すことは可能ですか?
うまく説明できたことを願っています。
あなたの助けを待っています。