Effacer les filtres
Effacer les filtres

Can i convert the following code into Matlab embedded function(for simulink use)

1 vue (au cours des 30 derniers jours)
Hello,
I would like to write the matlab equivalent of the following code(pascal) into a Matlab embedded function, then put this block into my simulink model. I need all this mess because i want to send a value via RS-232 from simulink to a microcontroller, and for some reason, only the values in the range of 65..127 are received correctly by the uC.
I have 2 questions:
1. is it correct to use matlab embedded function
2. if yes, could somebody help and send me the converted code
Here is the pascal code:
var y:array[1..10] of byte;
u: longint; //input number
i,nr:byte;
s:boolean;
begin
newu:=0;
nr:=0;
s:=false;
if u<0 then s:=true;
while u<>0 do
begin
newu:=newu*10+(u mod 10);
u:=u div 10;
inc(nr);
end;
for i:=nr downto 1 do //puts the digits of input number into string
begin
y[i]:=(newu mod 10);
newu:=newu div 10;
end;
for i:=1 to nr do
begin
case y[i] of
0: y[i]:=65;
1: y[i]:=66;
2: y[i]:=67;
3: y[i]:=68;
4: y[i]:=69;
5: y[i]:=70;
6: y[i]:=71;
7: y[i]:=72;
8: y[i]:=73;
9: y[i]:=74;
end;
end.

Réponse acceptée

Walter Roberson
Walter Roberson le 12 Déc 2012
If I scan the pascal correctly, then you might be able to use something like
y = sprintf('%d', u) - '0' + 'A';
nr = length(y);

Plus de réponses (1)

Ryan G
Ryan G le 12 Déc 2012
I'm not sure if this will help but there is a RS232 Blockset on the file exchange you should probably check out.
I try to avoid MATLAB functions in Simulink whenever possible. Sometimes you may do something that doesn't generate c-code well in the MATLAB function and then you'll get stuck when you go to deploy the controller.
I would suggest looking at the blockset to see if you can workaround using this code, if not comment back and edit the snippet above to be a bit more readable. See here

Catégories

En savoir plus sur Programmatic Model Editing dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by