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

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

댓글을 달려면 로그인하십시오.

답변 (1개)

Jan
Jan 2012년 10월 7일

0 개 추천

Is u a const variable, while last is not?

댓글 수: 3

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 2012년 10월 8일
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 2012년 10월 8일
I see the values creating an another output and this output linked to a "To Workspace" block.
The variable *last always is 0.
Thanks!

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Simulink에 대해 자세히 알아보기

제품

태그

질문:

2012년 10월 7일

Community Treasure Hunt

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

Start Hunting!

Translated by