MATLAB Answers

Sharmen
1

How to set timer

Asked by Sharmen
on 16 May 2011
Hi, how to set timer for a Pushbutton in GUI. Lets say if a pushbutton is pressed and after 5 second it should do "set(pushbutton1.text1,'string','part1')" and let say after 10 seconds it should do " set(pushbutton1.text3,'string','part2')". How do i do this step?
thanks sharmen

  0 Comments

Sign in to comment.

2 Answers

Answer by Andy
on 16 May 2011

You might want to take a look at Matt Fig's http://www.mathworks.com/matlabcentral/fileexchange/24861-41-complete-gui-examples. Specifically, "19.How can I use a timer in a GUI? GUI_17 ".

  3 Comments

Sharmen
on 16 May 2011
I've looked at it before.. but mine is different.
I want if 5 seconds do PartA
if 10 seconds do PartB
Set two timers at 10 seconds each, with each having its own callback, one starting 5 seconds after the other.
No need for two timers, he can just use the StartDelay argument for the first 5 seconds.

Sign in to comment.


Answer by Paulo Silva
on 16 May 2011

function GuiFun
fig=figure;
GuiButton = uicontrol('Style','pushbutton','String','PushToStart',...
'Position',[315,220,70,25],...
'Callback',@StartTimer);
t = timer('TimerFcn',@TimerFun, 'ExecutionMode',...
'fixedSpacing','Period',10,'StartDelay',5);
Val=1;
function StartTimer(a,b)
start(t)
disp('Timer Started, wait 5 seconds')
set(GuiButton,'String','Wait')
end
function TimerFun(a,b)
%protection against user closing the figure while timer is running
if ~ishandle(fig)
stop(t)
disp('User closed the figure while timer was running')
disp('Timer stopped')
return
end
set(GuiButton,'String',['part' num2str(Val)])
Val=Val+1;
if Val>3
stop(t);
set(GuiButton,'String','End')
disp('Timer Stop after 2 periods')
else
disp('wait 10 seconds')
end
end
end

  1 Comment

Sharmen
on 16 May 2011
thanks paulo

Sign in to comment.