В этом примере показано, как использовать Функциональный блок C, чтобы вызвать наследие C функции, которые реализуют n-мерный поиск по таблице.
В этом примере наследие C функции заданы в lookupTable.h и реализованы в directLookupTableND.c. Определения типа, используемые в этом примере, могут быть найдены в your_types.h.
В модели заголовочный файл и исходный файл заданы в Параметрах конфигурации Модели> Цель Симуляции. Теперь функция C может быть вызвана в Функциональном блоке C. Прототип функции, названной в этом примере:
FLT directLookupTableND(const FLT *tableND, const UINT32 nbDims, const UINT32 *tableDims, const UINT32 *tableIdx)
где FLT определение типа типу с плавающей точкой и UINT32 определение типа 32-битному целому числу без знака.
Этот пример задает две макро-функции, которые используют функциональный directLookupTableND, которые называются с помощью Функциональных блоков C. Они:
DirectLookupTable3D - 3D интерполяционная таблица
DirectLookupTable4D - 4D интерполяционная таблица
Обе этих функции берут следующие входные параметры:
const FLT *tableND Таблица
const UINT32 *tableDims - Размер таблицы
const UINT32 *tableIdx - Табличный индекс
где tableND и tableDims сопоставлены с параметрами Функционального блока C и tableIdx вход с блоком. Значением, возвращенным наследием C функция, является выход блока.
model = 'slexCFunctionLookupTable'; open_system(model); evalc('sim(model)'); slcc('clearCustomCodeModules');
