How to execute 2 functions simultaneously in the same loop on a GUI

1 visualización (últimos 30 días)
I have a program that uses DAQ to generate signals. I have a timer that runs between a specific range. But I want the timer to keep running even if the signal is generating. What I mean, is that the code that generates the signal has its own time... So when the period of generation is done, my timer restarts where it was.
Example: while(something) time = time + 1; pause(1);
if time == 1 generate signal code (for 5 seconds); end; end;
after generating is finished, time = 2, =3, etc. But I want time to keep running while generating signal.
Any idea? should I use global, persistent variable for time?
  3 comentarios
Adam Taher
Adam Taher el 29 de Mayo de 2015
Editada: Adam Taher el 29 de Mayo de 2015
Hi,
My code is something like: (i'm using GUI)
handles.time = 0;
while(something)
handles.time = handles.time + 1; pause(1); % this will make my counter increment every 1 second.
if handles.time == 5
display('generating');
Generation signal code over here (this code has its own period of time)
end; end;
So what happens is when time == 5, the generation code executes, but my handles.time stops counting, it doesn't keep running, which I understand why. It restarts counting AFTER that the generation code finishes. But what I want, is that handles.time is able to keep running WHILE the generation code is executing.
So I was wondering if there is a function that could help.
Salaheddin Hosseinzadeh
Salaheddin Hosseinzadeh el 29 de Mayo de 2015
Ok Adam, that's a bit better now!
Generally that's not a good way of keeping the track of time. you can make the while loop running. you can either make a timer object, or even make it easier and use tic toc commands
tic
toc
Anyhow, tic toc will keep the track of time for you while another code is running ;)
Good luck!

Iniciar sesión para comentar.

Respuestas (1)

Salaheddin Hosseinzadeh
Salaheddin Hosseinzadeh el 29 de Mayo de 2015
Ok Adam, that's a bit better now!
Generally that's not a good way of keeping the track of time. you can make the while loop running. you can either make a timer object, or even make it easier and use tic toc commands
tic
toc
Anyhow, tic toc will keep the track of time for you while another code is running ;)
Good luck!

Community Treasure Hunt

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

Start Hunting!

Translated by