Filter löschen
Filter löschen

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

3 Ansichten (letzte 30 Tage)
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 Kommentare
Adam Taher
Adam Taher am 29 Mai 2015
Bearbeitet: Adam Taher am 29 Mai 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 am 29 Mai 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!

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Salaheddin Hosseinzadeh
Salaheddin Hosseinzadeh am 29 Mai 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!

Kategorien

Mehr zu Data Acquisition Toolbox Supported Hardware finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by