求matlab中timer代码,一定要应用call back函数(请不要贴help里的例子)。
我想每隔2s钟读取一个数组元素,存到一个新数组中,这个存取操作写在callback的函数里面。谢谢!...
我想每隔2s钟读取一个数组元素,存到一个新数组中,这个存取操作写在call back的函数里面。谢谢!
展开
1个回答
展开全部
%在GUI中,比方说你加了一个pushbutton,他的tag为:pushbutton1,那么他的回调函数(callback)可以这样写:
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
T=timer; %新建一个定时器
set(T,'BusyMode','queue'); %设置繁忙模式,当2S内未完成设置的程序(既timerfcn的程序)时,就会强制执行下一个程序,如果值不是'queue'而是'drop',就会等待程序完成后,再执行下一个程序。
set(T,'ExecutionMode','fixedRate');%这一句对时间要求不是很高的话,可有可无。
set(T,'Period',2);%设置定时时间为2秒。
set(T,'TasksToExecute',n);%设置要执行的次数,为n,n可以是变量,也可以是具体的数。
set(T,'timerfcn',{@Task});%设置定时器的回调函数,也就是说没隔2秒钟,定时器都会执行一次名为Task的程序,执行n此。当然,回调函数的名字可以自定,可以不用Task,但要与后面编写的回调函数名一致。
start(T);%开始定时器
%下面是写timerfcn的回调函数Task。
function Task(obj,eventdata)
……
……%这里是你要读取数组元素的程序。
%注意:这个function程序编完之后不要写end,因为function pushbutton1_Callback(hObject, eventdata, handles)这个程序没有end,所以Task的也不要写,如果想写的话都要写上,而且是整个m文件的所有function都要写。
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
T=timer; %新建一个定时器
set(T,'BusyMode','queue'); %设置繁忙模式,当2S内未完成设置的程序(既timerfcn的程序)时,就会强制执行下一个程序,如果值不是'queue'而是'drop',就会等待程序完成后,再执行下一个程序。
set(T,'ExecutionMode','fixedRate');%这一句对时间要求不是很高的话,可有可无。
set(T,'Period',2);%设置定时时间为2秒。
set(T,'TasksToExecute',n);%设置要执行的次数,为n,n可以是变量,也可以是具体的数。
set(T,'timerfcn',{@Task});%设置定时器的回调函数,也就是说没隔2秒钟,定时器都会执行一次名为Task的程序,执行n此。当然,回调函数的名字可以自定,可以不用Task,但要与后面编写的回调函数名一致。
start(T);%开始定时器
%下面是写timerfcn的回调函数Task。
function Task(obj,eventdata)
……
……%这里是你要读取数组元素的程序。
%注意:这个function程序编完之后不要写end,因为function pushbutton1_Callback(hObject, eventdata, handles)这个程序没有end,所以Task的也不要写,如果想写的话都要写上,而且是整个m文件的所有function都要写。
追问
非常感谢!但是我不是在GUI里编写,是直接在m文件里面编写程序,能否再帮帮忙?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询