Why can´t i do this? (C-Code doubt)

Hello,
If i have as a S-Function parameter:
variable1 (with value 0)
And i have an input (u) and an output (y). I want to do this:
double variable3 = 0,*var,*input,*last;
input = &u[0]; /* u[0] is the Simulink block input */
last = &variable1;
var = &variable3;
*var = *input - *last;
if (variable3 > 0){
y[0] = *input; /* y[0] is the Simulink block output */
*last = *input; ---> This line doesn´t work!, Why?
}
else
y[0]=0;
I´m trying to implement this code in a S-Function.
Thanks!

3 comentarios

Jan
Jan el 7 de Oct. de 2012
What does "doesn'twork" mean? Do you get a warning from the compiler? If so, which one?
Enrique
Enrique el 7 de Oct. de 2012
I don´t get any error or warning. The problem is the variable *last, it doesn´t get the value of *input.
Friedrich
Friedrich el 8 de Oct. de 2012
Are you sure you get in the if branch? maybe add some ssPrintf statements to get some runtime debugging outputs.

Iniciar sesión para comentar.

Respuestas (1)

Jan
Jan el 7 de Oct. de 2012

0 votos

Is u a const variable, while last is not?

3 comentarios

Enrique
Enrique el 7 de Oct. de 2012
How can i change the data type of last?
I try to do:
double * const last;
But i have this error:
error C2166: l-value specifies const object
In the line:
last = &variable1;
Thanks!
Jan
Jan el 8 de Oct. de 2012
Nope, than the const qualifier is most likely not the problem.
How do you check, that *last is not assigned correctly? I'm convinced that the line does assign the value. Therefore I assume, that you expect the changes on the wrong place.
Enrique
Enrique el 8 de Oct. de 2012
I see the values creating an another output and this output linked to a "To Workspace" block.
The variable *last always is 0.
Thanks!

Iniciar sesión para comentar.

Categorías

Más información sobre Simulink en Centro de ayuda y File Exchange.

Productos

Etiquetas

Preguntada:

el 7 de Oct. de 2012

Community Treasure Hunt

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

Start Hunting!

Translated by