타이머 오류 시 자동 재시작

타이머로 특정루틴을 계속 실행해야 하는데,
가끔씩 타이머가 원인불명으로 중단되는 경우가 발생합니다.
이처럼 어떤 오류로 타이머가 중단된 경우,
이를 감지하여 타이머를 다시 실행시키고 싶습니다.
좋은 방법이 있을까요?

2 个评论

madhan ravi
madhan ravi 2020-9-3
Simulink?
Hyun-yong Kim
Hyun-yong Kim 2020-9-4
I'm using MATLAB
I will try to the following code. Is it OK?
---------------------------------------------------
try
timer_processing_routine
catch
t = timerfind;
if isempty(t)
t = timer .... % redefind the timer
elseif t.Running == "off"
start(t)
end
end
-------------------------------------------------------

请先登录,再进行评论。

 采纳的回答

Sourabh Kondapaka
Sourabh Kondapaka 2020-9-17

0 个投票

Hi,
As I am unaware with what error the timer has stopped, your code should also work.
You can use the below code as a reference if required:
%Here the timer runs for every 1 second for ever.
t = timer;
t.ExecutionMode = 'fixedSpacing';
t.Period = 1;
t.TimerFcn = @check;
start(t)
function check(~, ~)
count = timerfind;
if isempty(count)
t = timer;
t.ExecutionMode = 'fixedSpacing';
t.Period = 1;
t.TimerFcn = @check;
start(t)
else
% Your Timer processing routine here
disp("Timer processing routine");
end
end

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 변수 범위 지정하기 및 이름 생성하기 的更多信息

产品

版本

R2020a

Community Treasure Hunt

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

Start Hunting!