ich habe über einen S-Function Block eigenen C-Code implementiert. Dieser C-Code arbeitet eigentlich mit integer, jedoch verlangt Matlab am Ende in Simulink als Eingang double und gibt auch double aus.
Jetzt würde ich gerne wissen, was ich wo ändern muss, damit ich auch wie geplant integer als Eingabe nehmen kann.
Denn im Moment funkioniert es zwar, jedoch muss ich meinen integer Eingangswert in Double umwandeln. Da das ganze Simulink Projekt am Ende jedoch als C-Code ausgegeben werden soll und auf einem Mikrocontroller gebracht werden soll, würde ich aber gerne auf diese unnötige Resourcen-Verschwendung verzichten.
Als Wrapper für die Implementierung meines C-Codes habe ich den vom timestwo Beispiel für meine Zwecke angepasst. Jedoch habe ich da nichts passendes in der richtung gesehen, was auf double hindeutet.
Also gehen sollte das ja, denn mit dem S-Function Builder ist es ja an sich möglich. Jedoch bekomme ich den Code vom S-Function Builder auf meine Anwendung nicht richtig angepasst.
ich habe nun einen einfachen Block mit dem S-Function Builder erstellt. Dieser funktioniert entsprechend dem timestwo Beispiel, nur eben mit int16.
Nach einer weile herumwerkeln, habe ich´s letztendlich geschafft diesen dann auch für meine Anwendung anzupassen.
Einstellungen und Berechtigungen
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
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.