variable's scope, persistent variables and timer !!!!
3 views (last 30 days)
Show older comments
Hello!
I want to access a persistent variable from within timer StopFcn callback function. The callback should delete the timer and empty the persitent variable. my code look like this:
function callerfunc()
persitent resp;
persistent hTimer;
if isempty(resp)
resp=0;
end
if isempty(hTimer)
timeout=5;
hTimer =timer('TimerFcn',@(h)fprintf(' %s callerfunc''s Timer is ran out ...'),'StartDelay',timeout);
hTimer.StopFcn = {@calledfunc, hTimer,resp};
end
start(hTimer);
end
function calledfunc(htimer,hresp)
delete(htimer);
hresp=[];
end
both functions are in the same file. Actually the call of calledfunc is a call by value and not by reference. therefore the persistent variable resp in callerfunc remaain unchanged after StopFcn excecute.can someone help me??
thanks!
Bolivar
0 Comments
Accepted Answer
Walter Roberson
on 3 Sep 2013
You cannot do that. Nest your second function instead of having it just sequential.
function callerfunc()
persitent resp;
persistent hTimer;
if isempty(resp)
resp=0;
end
if isempty(hTimer)
timeout=5;
hTimer =timer('TimerFcn',@(h)fprintf(' %s callerfunc''s Timer is ran out ...'),'StartDelay',timeout);
hTimer.StopFcn = @calledfunc;
end
start(hTimer);
function calledfunc(varargin)
delete(htimer);
resp=[];
end
end
More Answers (0)
See Also
Categories
Find more on C Shared Library Integration in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!