Отредактируйте функцию таймера после ее запуска - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь выяснить, как добавить время по таймеру, как только оно началось. Идея состоит в том, что если человек нажимает определенные кнопки в графическом интерфейсе, таймер увеличивается на заданный промежуток времени, который определяется другой переменной. Когда я не мог понять это, я решил просто сделать второй таймер, который запускается при нажатии кнопки, но второй таймер не будет отображаться, хотя код точно такой же, так что теперь я действительно в растерянности.

введите описание изображения здесь введите описание изображения здесь

1 Ответ

0 голосов
/ 11 ноября 2019

Насколько я знаю, нет способа настроить таймер запуска. Я бы порекомендовал попробовать использовать tic / toc. Задайте ограничение по времени в некоторой переменной (tLimit), получите время начала с помощью tic, а затем вычислите истекшее время с помощью toc и сравните с tLimit.

tLimit = <some number>;
tStart = tic;

Затем в коде вы проверяете, сколько времени прошло:

if toc(tStart) > tLimit
    % done
end

Если вам нужно добавить время:

tLimit = tLimit + tExtra

Если вы действительноЕсли вы хотите выполнить проверку в объекте таймера, вы можете создать функцию, которая выполняет сравнение времени, и запустить ваш таймер, который:

function timeCheck(timerObj,~)
    global tStart
    global tLimit
    if toc(tStart) > tLimit
        fprintf('Time''s up! %0.1f seconds elapsed\n', toc(tStart));
        stop(timerObj);
    end
end

Тогда:

global tStart
global tLimit    
tLimit = <some number>;
t = timer;
t.TimerFcn = @timeCheck;
t.ExecutionMode = 'fixedRate';
tStart = tic;
start(t);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...