Main Content

ビットフィールド

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
};

関連するトピック