Чтобы преобразовать код MATLAB®, который использует глобальные данные для фиксированной точки:
Объявите переменные как глобальную переменную в вашем коде.
Для получения дополнительной информации смотрите, Объявляют Глобальные переменные
Перед использованием глобальных данных задайте и инициализируйте его.
Для получения дополнительной информации смотрите, Задают Глобальные данные.
Преобразуйте код в фиксированную точку от Fixed-Point Converter или использования fiaccel.
Fixed-Point Converter всегда синхронизирует глобальные данные между MATLAB и сгенерированной MEX-функцией.
При использовании глобальных данных необходимо сначала объявить глобальные переменные в коде MATLAB. Этот код показывает use_globals функция, которая использует две глобальных переменные, AR и B.
function y = use_globals(u) %#codegen % Declare AR and B as global variables global AR; global B; AR(1) = u + B(1); y = AR * 2;
Можно задать глобальные данные в глобальной рабочей области MATLAB в проекте Fixed-Point Converter, или в командной строке. Если вы не инициализируете глобальные данные в проекте или в командной строке, программное обеспечение ищет переменную в глобальной рабочей области MATLAB.
Преобразовывать use_globals функция, описанная в, Объявляет Глобальные переменные, необходимо сначала задать и инициализировать глобальные данные.
global AR B;
AR = ones(4);
B=[1 2 3];
На странице Define Input Types, после выбора и выполнения тестового файла, выбирают Yes next to Does this code use global variables.
По умолчанию Fixed-Point Converter называет первую глобальную переменную в проекте g.
Введите имена глобальных переменных, используемых в вашем коде. После добавления глобальной переменной задайте ее тип.
Нажмите Add global, чтобы ввести более глобальные переменные.
Примечание
Если вы не задаете тип, необходимо создать переменную с тем же именем в глобальной рабочей области.
Чтобы задать глобальные данные в командной строке, используйте fiaccel -globals опция. Например, чтобы преобразовать use_globals функция, описанная в, Объявляет Глобальные переменные к фиксированной точке, задает два глобальных входных параметров, AR и B, в командной строке. Используйте -args опция, чтобы указать, что вход u действительное, скалярное дважды.
fiaccel -float2fixed cfg -global {'AR',ones(4),'B',[1 2 3]} use_globals -args {0}
-globals флаг с помощью формата -globals {'g', {type, initial_value}}.Чтобы ввести начальные значения для глобальных данных переменного размера, задайте тип и начальное значение с -globals флаг с помощью формата -globals {'g', {type, initial_value}}. Например, чтобы задать глобальную переменную g это имеет начальное значение [1 1] и верхняя граница [2 2], Введите:
fiaccel -float2fixed cfg -global {'g', {coder.typeof(0, [2 2],1),[1 1]}} myfunctioncoder.typeof.Если вы знаете, что значение глобальной переменной не изменяется во время выполнения, можно уменьшать наверху в фиксированной точке путем указывания, что глобальная переменная имеет постоянное значение. Вы не можете записать в постоянную глобальную переменную.
На странице Define Input Types, после выбора и выполнения тестового файла, выбирают Yes next to Does this code use global variables.
Введите имя глобальных переменных, используемых в вашем коде.
Кликните по полю справа от глобальной переменной.
Выберите Define Constant Value.

В поле справа от постоянной глобальной переменной введите выражение MATLAB.
Указывать, что глобальная переменная является постоянным использованием fiaccel команда, используйте -globals опция с coder.Constant класс.
Задайте объект настройки преобразования фиксированной точки.
cfg = coder.config('fixpt');
Использование coder.Constant указывать, что глобальная переменная имеет постоянное значение. Например, этот код указывает что глобальная переменная g имеет начальное значение 4 и та глобальная переменная gc имеет постоянное значение 42.
global_values = {'g', 4, 'gc', coder.Constant(42)};Преобразуйте код в фиксированную точку с помощью -globals опция. Например, преобразуйте myfunction к фиксированной точке, указывая, что глобальные переменные заданы в массиве ячеек global_values.
fiaccel -float2fixed cfg -global global_values myfunction
Отчет генерации кода предоставляет эту информацию о постоянной глобальной переменной:
Тип Global на вкладке Variables.
Подсвеченное имя переменной в панели Function.