#define myParam 9.8;
1. Откройте пример модели ex_param_macro
.
2. В модели выберите блок Gain. В Property Inspector установите значение параметра Gain равным myParam
.
3. Рядом со значением параметров нажмите кнопку действия (кнопка с тремя вертикальными точками) и выберите Create.
4. В диалоговом окне «Создание новых данных» установите значение Simulink.Parameter(9.8)
. Нажмите кнопку Создать. A Simulink.Parameter
объект, myParam
, появляется в базовом рабочем пространстве. Блок Gain использует объект, чтобы задать значение параметра Gain, в этом случае 9.8.
5. На вкладке Генерации кода нажмите кнопку Configure in Coder Приложения. В редакторе Отображения установите для класса памяти значение Define
. Нажмите кнопку ОК.
6. Чтобы создать модель и сгенерировать код, нажмите Ctrl + B.
Сгенерированный заголовочный файл ex_param_macro.h
определяет myParam
как макрос.
/* Definition for custom storage class: Define */ #define myParam 9.8 /* Referenced by: '<Root>/Gain' */
1. В редакторе Отображения на вкладке Parameters нажмите кнопку Update Code Mappings.
2. Изменение Класса памяти myParam
от Define
на ImportedDefine
.
3. В Property Inspector в разделе Секции кода установите значение файла заголовка external_params.h
. Сгенерированный код импортирует определение макроса из пользовательского файла заголовка с именем external_params.h
.
4. В текущей папке создайте заголовочный файл C external_params.h
, который содержит #define
оператор.
#ifndef _EXTERNAL_PARAMS #define _EXTERNAL_PARAMS #define myParam 9.8 #endif /* EOF */
5. Чтобы создать модель и сгенерировать код, нажмите Ctrl + B.
Сгенерированный заголовочный файл 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