Макроопределения (#define)

C построение

#define myParam 9.8;

Экспортируйте сгенерированное макроопределение

1. Открытая модель ex_param_macro в качестве примера.

2. В модели выберите блок Gain. В Property Inspector, установленном значение параметра Усиления к myParam.

3. Рядом со значением параметров кликните по кнопке действий (кнопка с тремя вертикальными точками) и выберите Create.

4. В диалоговом окне Create New Data, установленном Значении к Simulink.Parameter(9.8). Нажмите Create. A Simulink.Parameter объект, myParam, появляется в базовом рабочем пространстве. Блок Gain использует объект установить значение параметра Усиления, в этом случае, 9.8.

5. На вкладке Code Generation нажмите кнопку Configure in Coder App. В редакторе Отображений Кода, Классе памяти набора к 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 \exists.

/*
 * Check that imported macros with storage class "ImportedDefine" are defined
 */
#ifndef myParam
#error The variable for the parameter "myParam" is not defined
#endif

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте