Когда ваш рукописный код выделяет память для сигнала, состояния или данных о параметре, можно сгенерировать код что доступы что данные через указатель. Примените класс памяти, такой как ImportedExternPointer
к элементу данных в модели. Ваш рукописный код предоставляет определение указателя.
extern double *myIn;
1. Открытая модель ex_pointer
в качестве примера.
2. Модель открывает в Редакторе Simulink перспективный режим кода. Если это не делает, выберите Code> C/C ++ Code> Configure Model in Code Perspective.
3. В Model Data Editor выберите вкладку Inports/Outports.
4. От Представления Изменения выпадающий список выберите Code
.
Для блока Inport Именем Сигнала является In1
, и Классом памяти является ImportedExternPointer
.
5. Сгенерируйте код из модели.
Сгенерированный заголовочный файл ex_pointer.h
объявляет указатель.
/* Imported (extern) pointer block signals */ extern real_T *In1; /* '<Root>/In1' */
В сгенерированном исходном файле ex_pointer.c
, в образцовой ступенчатой функции, алгоритм разыменовывает указатель, In1
.
/* Model step function */ void ex_pointer_step(void) { /* Outport: '<Root>/Out1' incorporates: * Inport: '<Root>/In1' */ rtY.Out1 = *In1; }