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

2 Kommentare

madhan ravi
madhan ravi am 3 Sep. 2020
Simulink?
Hyun-yong Kim
Hyun-yong Kim am 4 Sep. 2020
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
-------------------------------------------------------

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Sourabh Kondapaka
Sourabh Kondapaka am 17 Sep. 2020

0 Stimmen

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

1 Kommentar

Hyun-yong Kim
Hyun-yong Kim am 17 Sep. 2020
Thank you very much for your help.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu 변수 범위 지정하기 및 이름 생성하기 finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2020a

Community Treasure Hunt

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

Start Hunting!