waitfor

Приостановите выполнение кода, чтобы достичь желаемой скорости выполнения

Описание

пример

waitfor(rate) останавливает выполнение, пока код не достигнет желаемой скорости выполнения. Функция учитывает время, которое тратится на выполнение кода между waitfor вызовы.

numMisses = waitfor(rate) возвращает количество итераций, пропущенных при выполнении кода между вызовами.

Примеры

свернуть все

Создайте объект скорости, который работает с частотой 1 Гц.

r = rateControl(1);

Запустите цикл с помощью rateControl объект внутри для управления выполнением цикла. Сбросьте объект перед выполнением цикла, чтобы сбросить таймер. Печать итерации и истекшее время.

reset(r)
for i = 1:10
	time = r.TotalElapsedTime;
	fprintf('Iteration: %d - Time Elapsed: %f\n',i,time)
	waitfor(r);
end
Iteration: 1 - Time Elapsed: 0.002655
Iteration: 2 - Time Elapsed: 1.001775
Iteration: 3 - Time Elapsed: 2.000507
Iteration: 4 - Time Elapsed: 3.001433
Iteration: 5 - Time Elapsed: 4.001127
Iteration: 6 - Time Elapsed: 5.001328
Iteration: 7 - Time Elapsed: 6.000218
Iteration: 8 - Time Elapsed: 7.000240
Iteration: 9 - Time Elapsed: 8.000945
Iteration: 10 - Time Elapsed: 9.000661

Каждая итерация выполняется с интервалом в 1 секунду.

Входные параметры

свернуть все

Rate объект, заданный как указатель. Этот объект содержит информацию для требуемой скорости и другую информацию о выполнении. См. rateControl для получения дополнительной информации.

Выходные аргументы

свернуть все

Количество пропущенных выполнений задачи, возвращенных как скаляр. waitfor (Robotics System Toolbox) возвращает количество раз, когда задача была пропущена в Rate объект на основе LastPeriod время. Для примера, если желаемая скорость составляет 1 Гц, а последний период составлял 3,2 секунды, numMisses возвращает 3.

Введенный в R2016a