타이머 오류 시 자동 재시작

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

2 comentarios

madhan ravi
madhan ravi el 3 de Sept. de 2020
Simulink?
Hyun-yong Kim
Hyun-yong Kim el 4 de Sept. de 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
-------------------------------------------------------

Iniciar sesión para comentar.

 Respuesta aceptada

Sourabh Kondapaka
Sourabh Kondapaka el 17 de Sept. de 2020

0 votos

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 comentario

Hyun-yong Kim
Hyun-yong Kim el 17 de Sept. de 2020
Thank you very much for your help.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 변수 범위 지정하기 및 이름 생성하기 en Centro de ayuda y File Exchange.

Productos

Versión

R2020a

Preguntada:

el 3 de Sept. de 2020

Comentada:

el 17 de Sept. de 2020

Community Treasure Hunt

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

Start Hunting!