typedef struct { unsigned int p1 : 1; unsigned int p2 : 1; unsigned int p3 : 1; } my_struct_type
1. Открытая модель ex_struct_bitfield_CSC
в качестве примера. Модель содержит три блока Константа и три блока Выходного порта.
2. Модель открывает в Редакторе Simulink перспективный режим кода. Если это не делает, выберите Code> C/C ++ Code> Configure Model in Code Perspective.
3. В Model Data Editor, на вкладке Parameters, в Столбце значений, замечают, что значением первого блока Constant является p1
. Рядом со значением параметров кликните по кнопке действий (кнопка с тремя вертикальными точками) и выберите Create.
4. В диалоговом окне Create New Data, установленном Значении к Simulink.Parameter(false)
. Нажмите Create. Simulink.Parameter
объект, p1
, появляется в базовом рабочем пространстве. Объектно-ориентированная память булево значение, false
, и использует тип данных boolean
.
5. В Simulink.Parameter
диалоговое окно свойства, нажать ОК.
6. Используйте Model Data Editor, чтобы сконфигурировать другие блоки Константа, чтобы относиться к новым объектам параметра под названием p2
и p3
.
7. В Model Data Editor нажмите кнопку дополнительной информации Show/refresh.
8. Установите представление Change выпадающий список на Code
.
9. Используйте столбец Класса памяти, чтобы применить пользовательский класс памяти BitField
ко всем объектам параметра.
10. Используйте столбец Имени Struct, чтобы сконфигурировать каждый объект использовать тот же тип структуры, 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 */ 0, /* p2 */ 0, /* p3 */ 0 };