Matlab function into simulink: variable declaration
显示 更早的评论
Hi, I'm programming an arduino due using a matlab function into simulink. As a test, i try to let the on board let blink and count how many times the led has blinked using the matlab function with the folowing code:
function [LED,counter]= blink(pulse)
%#codegen
counter=0;
LED=0;
while true
if pulse == 1
LED=1;
counter=counter+1;
else
LED=0;
end
end
In this code, pulse is a pulse generator, LED goes to the pin of the on board led. With this code, the led doesn't blink because i guess the function doesn't end because of the while loop so i tried another function
function [LED,counter]= blink(pulse)
%#codegen
counter=0;
if pulse == 1
LED=1;
counter=counter+1;
else
LED=0;
end
with this code, the led will blink, but the counter resets after every loop, but without 'counter=0' there is an error because counter isn't initialized. I tried with the model properties, StartFcn to initialize the counter but that doesn't work, anyone who can help me? Thanks!
回答(1 个)
Walter Roberson
2016-1-15
0 个投票
Use "persistent" ? Though in that particular context I am not sure what the value would initialize to.
2 个评论
Thogoe
2016-1-15
Walter Roberson
2016-1-15
Do not persistent the output variable, persistent the counter variable and copy the counter variable to the output variable.
类别
在 帮助中心 和 File Exchange 中查找有关 Troubleshooting in MATLAB Support Package for Arduino Hardware 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!