使用功能从c++ builder得到值

46个视图(30天)
耶利米体育
耶利米体育 2023年5月14日在十五25
评论道: Shaik 2023年5月15日在1:26
你好,我是新编码和我被要求学习项目的功能构建器,我似乎无法找到一个方法来分配指针的值我希望的输入和输出。也许我只是缺乏一些基本的逻辑知识吗?
项目我正在研究Speeduino开放源代码。这是一个非常小的部分项目,目前我正在学习。
内联uint32_t div360 (uint32_t n) {
# ifdef USE_LIBDIVIDE
返回libdivide: libdivide_u32_do (n, &libdiv_u32_360);
其他#
返回n / 360 u;
# endif
}
无符号长angleToTime (int16_t角,字节方法)
{
无符号长returnTime = 0;
如果((方法= = CRANKMATH_METHOD_INTERVAL_REV) | |(方法= = CRANKMATH_METHOD_INTERVAL_DEFAULT))
{
* revolutionTime returnTime = div360(角度);
}
else if(方法= = CRANKMATH_METHOD_INTERVAL_TOOTH)
{
如果(triggerToothAngleIsCorrect = = true)
{
无符号长toothTime = (toothLastToothTime - toothLastMinusOneToothTime);
uint16_t tempTriggerToothAngle = triggerToothAngle;/ / triggerToothAngle由中断
returnTime = ((toothTime *角)/ tempTriggerToothAngle);
}
其他{returnTime = angleToTime(角,CRANKMATH_METHOD_INTERVAL_REV);}/ /安全检查。这可能发生,如果最后一个牙齿以外的正常模式等
}
返回returnTime;
}
我把这段代码在包装器在输出部分连同适当的标题
这是我创建的块
我不能墨西哥人
我怎么能够将代码中的变量分配给物体的输入和输出,所以我可以运行吗?
谢谢你!

接受的答案

Shaik
Shaik 2023年5月14日16:50
你好,
希望你正在做的好。
使用功能构建器创建一个功能,您需要定义输入,输出,和其他参数的块。s函数构建器提供了一个接口用于指定这些细节和编写必要的代码来实现你的块的行为。
这是一个循序渐进的指南如何分配变量在代码的输入和输出功能:
  1. 打开功能构建器:在MATLAB中,打开功能构建器通过输入sfunctionbuilder在命令窗口中。
  2. 指定输入和输出的数量和类型:在s函数构建器窗口中,去“港口”选项卡。输入的数量你需要阻止并指定输入和输出类型(例如,加倍,int16等)。你也可以给他们的名字。
  3. 定义函数方法:s函数构建器窗口中,去“方法”选项卡。您将会看到一个列表的方法等开始,输出,更新等。这些方法定义块的行为。
  4. 实现输出方法:选择输出方法,点击“编辑”按钮。这将打开一个MATLAB编辑器窗口,您可以编写的代码输出方法。
  5. 指定输入和输出变量:输出方法的代码,您可以指定变量的值的输出。您可以访问使用的输入和输出uy指针,分别。
例如,假设您有两个输入和一个输出函数中定义构建器,您可以在代码中指定的值如下:
无效输出(SimStruct * S, int_T tid)
{
/ /得到输入和输出的指针
InputRealPtrsType u = ssGetInputPortRealSignalPtrs (S, 0);
InputRealPtrsType v = ssGetInputPortRealSignalPtrs (S, 1);
OutputRealPtrsType y = ssGetOutputPortRealSignalPtrs (S, 0);
/ /赋值输出
(int_T我= 0;我< ssGetNumSamples(年代);+ + i)
{
/ /赋值代码的输出
y[我]= div360 (u v[我]*[我]);
}
}
在这个例子中, u v 是指针对输入信号, y 输出信号是一个指针。从您的代码的值分配给内部的输出信号 循环。
  1. 生成功能:一旦你已经实施了必要的方法,点击“生成功能”按钮的功能构建器窗口。这将生成s函数文件(。c和.tlc),您可以使用仿真软件。金宝app
生成功能后,您可以使用它在你的仿真软件模型通过添加功能块和指定适当的输入和输出。金宝app
2的评论
Shaik
Shaik 2023年5月15日在1:26
你好,
从你提供的代码片段,看来你有一个s函数包装器函数生成器生成的。这个包装器需要输入指针( , 方法 , revolutionTime , tempTriggerToothAngle )和输出指针( returnTime div360 ),它允许您访问和修改相应的变量在函数之外。
使用这个包装器和获得的输出值,你需要遵循以下步骤:
  1. 定义输入变量(,方法,revolutionTime,tempTriggerToothAngle)和输出变量(returnTimediv360在MATLAB代码或任何其他编程语言使用。
  2. 输入变量赋值根据您的要求。
  3. 调用sfunc_att_Outputs_wrapper功能,通过输入变量指针作为参数。这将执行功能和计算输出值。
  4. 函数调用结束后,您可以访问的计算输出值从你前面定义的输出变量。

登录置评。

更多的答案(0)

类别

找到更多的在金宝app仿真软件编码器帮助中心文件交换

下载188bet金宝搏


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!