Bonjour,

J'ai généré un code C à partir de simulink, tout est ok sauf l'initialisation des variables.

J'ai essayer de 2 façon, dans mon chart j'ai mis init
entry: ma_variable = MA_MACRO;

puis clic droit, propriété et j'ai cocher Execute (enter) chart at Initialisation

mais ça ne fonctionne pas

j'ai aussi essayer en définissant le tout dans mon fichier.m comme ceci:

d'abord ma macro que je définie

MA_MACRO = Simulink.Parameter;
MA_MACRO.Value = 1;
MA_MACRO.DataType = 'uint8';
MA_MACRO.CoderInfo.StorageClass = 'Custom';
MA_MACRO.CoderInfo.CustomStorageClass = 'Define';

Ensuite ma variable que je veux initialiser a la valeur de ma macro

ma_variable = MyPackage.Signal;
ma_variable.DataType = 'uint8';
ma_variable.Min = 0;
ma_variable.Max = 1;
ma_variable.Complexity = 'real';
ma_variable.Dimensions = 1;
ma_variable.InitialValue= 'MA_MACRO';
ma_variable.StorageClass = 'Custom';
ma_variable.CoderInfo.CustomStorageClass = 'ExportToFile';

avant de faire cette manipulation j'avais dans la fonction d'initialisation de mon fichier C :

void mafonction_initialize(void)
{
....
/* custom signals */
mavariable = 0U;

et après la manip j'ai :

void mafonction_initialize(void)
{
....
/* custom signals */
mavariable = ((u1)0U);

Il initialise la valeur a la valeur de ma MACRO mais le problème c'est qu'il n'écrit pas le nom de la MACRO et donc si cette MACRO change de valeur dans le fichier dans lequel elle est définie, le changement ne sera pas pris en compte.

Quelqu'un pourrais m'aider svp?