timer with varying periods

조회 수: 15 (최근 30일)
Mihai
Mihai 2012년 12월 18일
답변: Martin Grden 2020년 10월 7일
Hi all!
I am running a test setup where I need to take measurements at varying intervals that are between the values of 47 < T < 53 seconds.
By this I mean, the period between executions of TimerFcn is not a constant value, rather a random value between 47 and 53.
Do you guys know if this is possible with the timer function?
I checked the 'Period' property of Timer(), and it takes a double value, not a function.
This is how I have my code set up right now.
getMeasurementsTimer = timer();
set(getMeasurementsTimer, 'executionmode', 'fixedRate', 'period', data);
set(getMeasurementsTimer, 'StartFcn', {'startTest', hObject});
set(getMeasurementsTimer, 'TimerFcn', {'getTemp', hObject});
  댓글 수: 3
Daniel Shub
Daniel Shub 2012년 12월 19일
There currently is not enough information to answer this question. Please edit the question and reopen.
Mihai
Mihai 2012년 12월 19일
편집: Mihai 2012년 12월 19일
By varying interval i mean a dynamic value for the "period" property. So between execution one and two it could be 49.555 seconds, and the next time the function is executed is 52.111 seconds later.
One of the requirements is that the difference between the max Tr (period between measurements)and min Tr has to be at least 4 seconds.

댓글을 달려면 로그인하십시오.

채택된 답변

Sean de Wolski
Sean de Wolski 2012년 12월 19일
I don't know of this being possible, but it is certainly a good idea for an enhancement request.
Here is how I would tackle this:
  1. Have the timer only execute once, i.e. 'TasksToExecute' = 1.
  2. In the 'TimerFcn' have it start a new timer with a StartDelay equivalent to your new period.
  3. Finally at the end of the 'TimerFcn', have it delete the timer calling it so you don't end up with hundreds of timers
  댓글 수: 2
Dan
Dan 2017년 5월 15일
Would be nice to be able to dynamically change the timer period 'on the fly' ...
desire is 'fixed rate' timer within the callback of which I'd like to modify the period to be used for the current period. While changing the period of the current interval is desired, changing the period of the next interval would be acceptable.
In lieu of this enhancement, I'll have to use the 'startat' feature to restart the timer at the appropriate time given the time passed to the callback in the current callback.
Amira chriki
Amira chriki 2020년 4월 16일
Can you please give me more details about how to change the timer's period inside the same timer timerFcn?

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Martin Grden
Martin Grden 2020년 10월 7일
TimerFcn(objh,event)
...
% at the end of your TimerFcn:
stop(opjh);
opjh.Period=newPeriod;
opjh.StartDelay=newPeriod;
start(opjh);

카테고리

Help CenterFile Exchange에서 Debugging and Analysis에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by