Simulink C-caller with persistent fcn

2 visualizzazioni (ultimi 30 giorni)
Jack Daniels
Jack Daniels il 30 Ott 2024
Risposto: David Balbuena il 6 Nov 2024
I'd like to have a short fcn in Simulink called by C-caller
if (state>0)
{
state = -1;
y = 0.1;
} else if (state < 0)
{
state = 1;
y = -0.1;
} else
y=0;
I need to have "state" variable as peristent, can I have a persistent variable within C-caller?
Thank you.

Risposte (2)

Shantanu Dixit
Shantanu Dixit il 1 Nov 2024
Hi Jack,
You can make the 'state' variable persistent within a C-caller block in Simulink by declaring it as 'static' in your C function. This ensures that the 'state' retains its value between calls to the function, effectively making it persistent across simulation time steps.
Hope this helps!

David Balbuena
David Balbuena il 6 Nov 2024
You could use the C Function block instead. The C Function block lets you put that code directly in the block mask, and it also lets you define "state" to be a persistent symbol. This example shows how to do that: https://www.mathworks.com/help/simulink/ug/modify-states-of-a-c-function-block-using-persistent-scope.html

Categorie

Scopri di più su Simulink Environment Customization in Help Center e File Exchange

Prodotti


Release

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by