Increment variable as function of time a button is held down

8 views (last 30 days)
Is there a way to somehow capture the amount of time that a button is held down, and use it to update, in real time, a variable? my specific interest is in using a button to spin a 3d figure. I can get it to do so, but only in increments (click,*spin n rads*,click,*spin n rads* etc).
I have looked for something like this and have been unable to find an answer.
thanks, Alex

Accepted Answer

Jan
Jan on 27 Apr 2012
You can use the 'WindowsButtonUpFcn' of the figure to catch the release of the button.
  1 Comment
Alex V
Alex V on 28 Apr 2012
this is precisely what i knew must exist, hadn't thought to look for it in the figure properties, thank you.
so if you wanted to do this the code would be something like:
function button_callback(blahblah)
stop = 0
i = tic;
while stop = 0
handles.t = toc(i);
handles.tsum = handles.tsum+handles.t;
disp(handles.tsum)
stop = get(handles.button,'UserData');
pause(0.1)
end
WindowsButtonUpFcn_figure1(blah)
set(handles.button,'UserData',1);
and the code would behave by displaying the incremented time every 0.1s?
this seems like a really clumsy way of doing it, im sure there's a better way, could you suggest at least a direction? much obliged for the answer to the original question at least, either way.
Cheers,
Alex

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!