Real-Time Workshop User's Guide | ![]() ![]() |
Model Codeサブライブラリ
Model Codeサブライブラリは、カスタムコードを生成したモデルファイルおよび関数内に挿入する10個のブロックを含みます。ブロックは、以下のいずれかによって表示できます。
一番上の行の4つのブロックは、つぎのファイルの先頭および末尾にカスタムコードを挿入するためのテキストフィールドを含みます。
model.h
-- Header Fileブロックmodel_prm.h
-- Parameter Fileブロックmodel.c
-- Source Fileブロックmodel_reg.h
-- Registration Fileブロック2番目と3番目の行の6個の関数ブロックは、つぎの指定したモデル関数の先頭および末尾に重要なコードの部分を挿入するためのテキストフィールドを含みます。
Registration function
-- Registration FunctionブロックMdlStart
-- MdlStart FunctionブロックMdlTerminate
-- MdlTerminate FunctionブロックMdlOutputs
-- MdlOutputs FunctionブロックMdlUpdate
-- MdlUpdate FunctionブロックMdlDerivatives
-- MdlDerivatives Functionブロック各ブロックは、3つのフィールドをもつダイアログボックスを提供します。
例題:カスタムコードブロックの使用法
以下の例題は、MdlStart Functionブロックを使って、コードをMdlStart
関数に導入します。下記のブロック線図は、Model Start Functionブロックが挿入されている簡単なモデルを示します。
Model Start Functionブロックをダブルクリックすると、Model Start Function Custom Codeダイアログボックスをオープンします。
利用可能なテキストフィールドのいずれか、またはすべてにカスタムコードを挿入することができます。
下記のコードは、この例題(mymodel
)に対するMdlStart
関数です。
void MdlStart(void) { /* user code (Start function Header) */ /* System: <Root> */ unsigned int *ptr = 0xFFEE; /* user code (Start function Body) */ /* System: <Root> */ /* Initialize hardware */ *ptr = 0; /* state initialization */ /* DiscreteFilter Block: <Root>/Discrete Filter */ rtX.d.Discrete_Filter = 0.0; }
Model Start Function Custom Code ダイアログボックスに入力されたカスタムコードは、生成コード内に直接組み込まれます。カスタムコードの各ブロックは、つぎのようなコメントを使ってタグを付けられます。
/* user code (Start function Header) */
![]() | カスタムコードライブラリ | Subsystem Codeサブライブラリ | ![]() |