Извикайте C функция в matlab-simulink/stateflow

Създадох C функция в test.c

#include <stdio.h>


int Test()
{
    FILE * fp = fopen("C:\\workspace\\test.txt", "rw");
    fprintf(fp, "test hello world");
    fclose(fp);
    return 10;
}

И дефинирах състояние в stateflow на simulink. използвах

en: Test();

Посочих файла и в двата Tools->Open Simulation Target->Custom Code->Include List of additional и Include Custom C Code в генерирания (използвайки абсолютен път и име на файл). Когато се опитах да стартирам модела, получих грешка на анализатора: en: Test(); ^ Функцията с име „Тест“ не е функция на потока на състоянието.

Какво трябва да направя?


person user1192878    schedule 20.08.2012    source източник


Отговори (2)


Направих го сам. В раздела „Включване на персонализиран C код в генерирания:“->Заглавен файл трябва да посоча моя заглавен файл като

#include "test.h"

вместо

test.h

И c файлът трябва да бъде посочен в "Включване на списък с допълнителни"->Изходни файлове като

test.c
person user1192878    schedule 20.08.2012

Добавяне на препратка към онлайн пример за добавяне на персонализиран C код към Stateflow, който ще помогне на други потребители, които се сблъскват с подобни проблеми: http://www.mathworks.com/support/solutions/en/data/1-1727V/

person Siddharth    schedule 29.10.2012