ビットフィールド
C コンストラクター
typedef struct { unsigned int p1 : 1; unsigned int p2 : 1; unsigned int p3 : 1; } my_struct_type
手順
1. モデル例 ex_struct_bitfield_CSC
を開きます。モデルには 3 つの Constant ブロックと 3 つの Outport ブロックが含まれています。
2. モデル データ エディターを開きます。[モデル化] タブで [モデル データ エディター] をクリックします。
3. モデル データ エディターの [パラメーター] タブの [値] 列で、1 つ目の Constant ブロックの値が p1
であることを確認します。パラメーター値の横にあるアクション ボタン (3 つの縦向きのドットのボタン) をクリックし、[作成] を選択します。
4. [新規データの作成] ダイアログ ボックスで、[値] を Simulink.Parameter(false)
に設定します。[作成] をクリックします。Simulink.Parameter
オブジェクト p1
がベース ワークスペースに表示されます。オブジェクトにはブール値 false
が格納され、boolean
データ型が使用されています。
5. Simulink.Parameter
のプロパティ ダイアログ ボックスで、[OK] をクリックします。
6. モデル データ エディターを使用して、p2
および p3
という名前の新しいパラメーター オブジェクトを参照するように他の Constant ブロックを構成します。
7. Embedded Coder アプリを開きます。
8. [C コード] タブで、[コード インターフェイス]、[個々の要素コードのマッピング] を選択します。
9. コード マッピング エディターの [パラメーター] タブで、[コード マッピングを更新します] ボタンをクリックします。
10. [ストレージ クラス] 列を使用して、ストレージ クラス BitField
をすべてのパラメーター オブジェクトに適用します。
10. プロパティ インスペクターで、[構造体名] 列を使用して、同じ構造体型 my_struct
を使用するように各オブジェクトを構成します。
11.モデルからコードを生成します。
結果
生成されたヘッダー ファイル ex_struct_bitfield_CSC.h
は構造体型 my_struct_type
を定義します。
/* Type definition for custom storage class: BitField */ typedef struct myStruct_tag { uint_T p1 : 1; /* Referenced by: '<Root>/Constant1' */ uint_T p2 : 1; /* Referenced by: '<Root>/Constant2' */ uint_T p3 : 1; /* Referenced by: '<Root>/Constant3' */ } myStruct_type;
生成されたソース ファイル ex_struct_bitfield_CSC.c
は構造体変数 my_struct
を定義および初期化します。
/* Definition for custom storage class: BitField */ myStruct_type myStruct = { /* p1 */ false, /* p2 */ false, /* p3 */ false };