#define myParam 9.8;
1. Открытая модель ex_param_macro
в качестве примера.
2. Модель открывает в Редакторе Simulink перспективный режим кода. Если это не делает, выберите Code> C/C ++ Code> Configure Model in Code Perspective.
3. В модели выберите блок Gain. В Property Inspector, установленном значение параметра Усиления к myParam
.
4. Рядом со значением параметров кликните по кнопке действий (кнопка с тремя вертикальными точками) и выберите Create.
5. В диалоговом окне Create New Data, установленном Значении к Simulink.Parameter(9.8)
. Нажмите Create. объект A Simulink.Parameter
, myParam
, появляется в базовом рабочем пространстве. Блок Gain использует объект установить значение параметра Усиления, в этом случае, 9.8
.
6. В диалоговом окне свойства Simulink.Parameter
, Классе памяти набора к Define
. Нажать ОК.
7. Сгенерируйте код из модели.
Сгенерированный заголовочный файл ex_param_macro.h
задает myParam
как макрос.
/* Definition for custom storage class: Define */ #define myParam 9.8
1. В Model Data Editor, на вкладке Parameters, нажимают кнопку дополнительной информации Show/refresh.
2. Установите представление Change выпадающий список на Code
.
3. Используйте столбец Класса памяти, чтобы изменить класс памяти myParam
от Define
до ImportedDefine
.
4. Для myParam
, Заголовочного файла набора к external_params.h
. Сгенерированный код импортирует макроопределение из пользовательского заголовочного файла под названием external_params.h
.
5. В вашей текущей папке создайте заголовочный файл C external_params.h
, который содержит оператор #define
.
#ifndef _EXTERNAL_PARAMS #define _EXTERNAL_PARAMS #define myParam 9.8 #endif /* EOF */
7. Сгенерируйте код из модели.
Сгенерированный заголовочный файл ex_param_macro.h
не задает макрос. Вместо этого файл включает (#include)
пользовательский заголовочный файл external_params.h
.
/* Includes for objects with custom storage classes. */ #include "external_params.h"
ex_param_macro.c
исходного файла содержит защиту, чтобы проверять, что определение для myParam
существует.
/* * Check that imported macros with storage class "ImportedDefine" are defined */ #ifndef myParam #error The variable for the parameter "myParam" is not defined #endif