<< mdaqDSPRead DSP managment mdaqDSPStop >>

MicroDAQ toolbox >> MicroDAQ toolbox > DSP managment > mdaqDSPStart

mdaqDSPStart

Starts DSP task

Calling Sequence

mdaqDSPStart(linkID);
mdaqDSPStart();

Description

Function starts executing appliation initialized by mdaqDSPInit() funciton on MicroDAQ DSP unit.

After DSP application is started (in Ext mode) it starts to send data to host and Scilab script can receive data with mdaqDSPRead() function. Through mdaqDSPWrite() function user can write data into DSP task (running DSP application) no matter if it's started in external or standalone mode.

Arguments

Example

Example 1: Using standard DSP API

// Script execution duration in seconds
TIME = 20;

// Model execution frequency in Hertz
FREQ = 5000;

// Build DSP binary from Xcos model
mdaqDSPBuild(mdaqToolboxPath() + filesep() + "examples" + filesep() +"fft_demo.zcos");

// Start DSP application
mdaqDSPInit('fft_demo_scig\fft_demo.out', FREQ, -1);
mdaqDSPStart();

first_time = 1;
a = []; s = [];

// Process data from DSP
sample_count = FREQ/10;
fig = figure("Figure_name","MicroDAQ FFT demo");

for i=1:(TIME*10)
   s = mdaqDSPRead(1, 1, sample_count, 1);
  
   N=size(s,'*');  //number of samples
   s = s - mean(s);//cut DC
   y=fft(s');

   f= FREQ*(0:(N/10))/N; //associated frequency vector
   n=size(f,'*');

   if is_handle_valid(fig) then
       if first_time == 1 then
           clf();
           plot(f,abs(y(1:n)));
           title("FFT", "fontsize", 3);
           xlabel("frequency [Hz]","fontsize", 3);
           first_time = 0;
           a = gca();
       else
           a.children.children.data(:,2) = abs(y(1:n))';
       end
   else
       break;
   end
end

// Stop DSP execution
mdaqDSPStop();

// Close plot
mprintf("\nFFT demo has been stopped.");
if is_handle_valid(fig) then
   close(fig);
end

Example 2: Using DSP task API

// Script execution duration in seconds
TIME = 20;

// Model execution frequency in Hertz
FREQ = 5000;

// Build DSP binary from Xcos model
mdaqDSPBuild(mdaqToolboxPath() + filesep() + "examples" + filesep() +"fft_demo.zcos");

// Create DSP task 
dsp = mdaqDSPTask();

// Start DSP application
dsp.init('fft_demo_scig\fft_demo.out', FREQ, -1);
dsp.start();

first_time = 1;
a = []; s = [];

// Process data from DSP
sample_count = FREQ/10;
fig = figure("Figure_name","MicroDAQ FFT demo");

for i=1:(TIME*10)
   s = dsp.read(1, 1, sample_count, 1);
  
   N=size(s,'*');  //number of samples
   s = s - mean(s);//cut DC
   y=fft(s');

   f= FREQ*(0:(N/10))/N; //associated frequency vector
   n=size(f,'*');

   if is_handle_valid(fig) then
       if first_time == 1 then
           clf();
           plot(f,abs(y(1:n)));
           title("FFT", "fontsize", 3);
           xlabel("frequency [Hz]","fontsize", 3);
           first_time = 0;
           a = gca();
       else
           a.children.children.data(:,2) = abs(y(1:n))';
       end
   else
       break;
   end
end

// Stop DSP execution
dsp.stop();

// Close plot
mprintf("\nFFT demo has been stopped.");
if is_handle_valid(fig) then
   close(fig);
end

See Also


Report an issue
<< mdaqDSPRead DSP managment mdaqDSPStop >>