WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

legacy

 

andi_u

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.05.2010, 08:47     Titel: legacy
  Antworten mit Zitat      
hallo leute,

ich habe ein problem mit legacy code. ich möchte einfach einen eingangsvektor an einen ausgangsvektor übergeben. baue ich meine generierte s-function in ein Modell ein, so ist das zweite element des Ausgangsvektors immer "0". Egal wie der Eingangsvektor aussieht. Warum? Was mache ich falsch? Liegts am c-code? Wäre toll wenn ihr mir helfen könntet.

mfg andi

hier ist der code:

test1.c :
#include "test1.h"
void test1 (unsigned char *u,unsigned char *y)
{
*y = *u;
}

test1.h:
#ifndef _TEST1_H_
#define _TEST1_H_
void test1 (unsigned char *, unsigned char *);
#endif

test1_lct.m:
def = legacy_code('initialize');
def.SFunctionName = 'lct_test1';
def.OutputFcnSpec = 'void test1 (uint8 u1[2], uint8 y1[2])';
def.HeaderFiles = {'test1.h'};
def.SourceFiles = {'test1.c'};
legacy_code('sfcn_cmex_generate', def);
legacy_code('compile', def);
legacy_code('slblock_generate',def);


andi_u

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.05.2010, 12:37     Titel:
  Antworten mit Zitat      
So hallo zusammen,

sind nicht gerade viele Lösungsansätze oder Anregungen gepostet worden.
Aber ich habe die Lösung selber gefunden. Hier is sie.

mfg andi_u


leg.c:
#ifndef _LEG_H_
#define _LEG_H_
void leg (unsigned char *, unsigned char *, unsigned char );
#endif

leg.h:
#include "leg.h"
void leg (unsigned char *in1, unsigned char *out1, unsigned char elemente)
{
unsigned short i;
for (i=0; i<elemente; i++)
*out1++ = *in1++;
}

leg_lct.m:
def = legacy_code('initialize');
def.SFunctionName = 'lct_leg';
def.OutputFcnSpec = 'void leg (uint8 u1[2], uint8 y1[size(u1,1)], uint8 size(u1,1))';
def.HeaderFiles = {'leg.h'};
def.SourceFiles = {'leg.c'};
legacy_code('sfcn_cmex_generate', def);
legacy_code('compile', def);
legacy_code('generate_for_sim', def);
legacy_code('slblock_generate', def);
 
Nick der Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2010, 14:25     Titel: Ähnliches Probelm
  Antworten mit Zitat      
Danke erstmal für deinen Beitrag.

Da ich mich momentan ebenfalls mit legacy code beschäftige, hast du mir schonmal bei dem ersten Problem geholfen.

Jedoch habe ich dazu eine weitere Fragestellung.

Code:
% Hier mein Code:
//calcfcn.c datei

#include "calcfcn.h"
#include "math.h"

void calcfcn(double *u1, double *y1){
    y1[0]=2*u1[0];
    y1[1]=2*u1[1];
    y1[2]=2*u1[2];
}

//calcfcn.h datei

#ifdef CALCFCN_H         /* ifndef funzt hier bei mir nicht da kommt die fehler meldung das etwas redefiniert wird*/
#define CALCFCN_H

double calcfcn(double *, double *);

#endif


def = legacy_code('initialize')
def.SFunctionName = 'ex_sfun_calcfcn';
def.OutputFcnSpec= 'void calcfcn(double u1[3], double y1[3])';
def.HeaderFiles={'calcfcn.h'};
def.SourceFiles={'calcfcn.c'};
legacy_code('sfcn_cmex_generate',def);
legacy_code('compile', def);
legacy_code('slblock_generate',def);

 


soweit so gut, ich bekomme ein Block mit einem 3fachen MUX Eingang und dreifachen MUX Ausgang.

was ich aber haben will sind drei einzelne Eingänge und drei einzelne Ausgänge.

wäre sehr nett wenn du oder jemd anderes mir zeigen kann wie ich den Code Ändern muss.

Vielen Dank
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.