计时器功能发生错误(MATLAB R2014a)

stander Qiu

我陷入了计时器功能错误。尽管我尝试搜索,但没有找到答案。

function figure1_CreateFcn(hObject, eventdata, handles) 
global t
t = timer( 'ExecutionMode', 'fixedRate', 'StartDelay',1, 'Period',1,'TasksToExecute',150); 
t.TimerFcn = {@my_callback_fcn};

我得到的错误是:

为定时器“ timer-1”评估TimerFcn时出错,
输入参数过多。

我的MATLAB版本是R2014a。start功能称为pushbutton2_Callback功能。
我曾试图改变Period1.0TasksToExecuteinfTimerFcn在调用timer这无济于事。

有谁可以帮助我吗?

马特

引起该错误的原因是,您提供的回调函数my_callback_fcn没有两个输入参数。您有两种解决方案。只做其中之一:

  1. 分配计时器回调时,请使用两个输入参数创建一个匿名函数:

    t.TimerFcn = {@(obj,event)my_callback_fcn};
    
  2. 向中添加两个输入参数,my_callback_fcn以便该函数的第一行如下所示:

    function my_callback_fcn(obj,event)
    

~如果在函数中不需要它们,可以忽略因此,问题中的代码可能如下所示:

t = timer('ExecutionMode', 'fixedRate', 'StartDelay',1, 'Period',1, 'TasksToExecute',150); 
t.TimerFcn = {@(~,~)my_callback_fcn};

是有关计时器回调函数的更多信息。


为了解决这个评论,并认为一个:

不要尝试同时应用两个解决方案,因为那样的话,您将在函数原型中添加两​​个参数,然后不提供它。结果将是以下错误:

为定时器“ timer-1”评估TimerFcn时出错
输入参数不足。

您只需要根据您在评论中发布的原型来执行解决方案2。这是一个工作示例:

function timertest
t = timer('ExecutionMode', 'fixedRate', 'StartDelay',1, 'Period',1, 'TasksToExecute',150); 
t.TimerFcn = {@my_callback_fcn};
start(t); pause on; pause; stop(t); delete(t);

function my_callback_fcn(handles,~)
handles;
disp('xy');

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档