Embedded matlab function for trigger generation

Hi,
I want to write an Embedded Matlab function with 2 inputs and 1 output.
Input1: an integer Input2: a trigger Output1: a triggered rectangular impulse, the number of its waveforms is determined by input1.
I need this to generate some trigger signals with a determined number.
For example, if input1 = 10 then the output shall generate 10 triggers. These 10 triggers will be used to trigger the Queue block so that I can control how many elements can be accepted by the Queue block.
The code is following:
function y = fcn(u1, u2)
y = 0;
if u2 == 1
for i = 1:u1
if y == 0
y = 1;
else
y = 0;
end;
end;
end;
But it outputs only 0. Must I insert some delays?
Thanks Senmeis

 Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 10 Ott 2012
Modificato: Azzi Abdelmalek il 10 Ott 2012
the loop in your matlab function will only generate the last value of y.
try this
with matlab function
function [y,compt] = fcn(yp,u1,u2,comptp)
%#codegen
compt=(comptp+1)*u2
if yp==0 & compt<=u1
y=1
else
y=0
end

Più risposte (1)

Thank you.
It works but now I want to trigger the generation with a rising edge, so the code
compt=(comptp+1)*u2
shall be changed.
Is there standard function for detection of rising edge?
Thanks Senmeis

1 Commento

I suggest that you accept the answer if it answers your first question, then repost another question

Accedi per commentare.

Categorie

Scopri di più su MATLAB Coder in Centro assistenza e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by