Simulink代码生成(十六)——tlc函数应用

Simulink代码生成(十六)——tlc函数应用

一、tlc函数应用举例

以十六进制转十进制为例

  • %assign result = FEVAL(“MATLAB-function-name”, rhs1, rhs2, …, rhs3, …)
    FEVAL函数的首个参数为MATLAB函数名,用双引号括起来,其后参数为这个MATLAB函数的参数列表,返回值只能接收MATLAB函数的首个返回值,且其数据类型自动转换为TLC的内建数据类型。
  • CAST函数是TLC语言中负责数据类型转换的重要函数。
    CAST(“DataType”, variablename)
%% hex2dec.tlc
%selectfile NULL_FILE

%function hex2dec(hexnum) Output
    %assign hexnum = FEVAL("strrep",hexnum,"0x","")
    %warning hexnum = %<hexnum>
    %assign decnum = FEVAL("hex2dec",hexnum)
    %assign decnum = CAST("Number",decnum)
    %warning decnum = %<decnum>
    %return decnum
%endfunction
%% test.tlc
%include "hex2dec.tlc"
%assign a = hex2dec("0x3E")

在这里插入图片描述

二、生成想要的文件

采用createrecord可以方便进行管理

%% func_gen.tlc
%selectfile NULL_FILE

%function code_gen(filename,ret,funcname,body,arg_list) Output
    %openfile buf = "%<filename>"
    #include <math.h>
    %<ret> %<funcname>(%<arg_list>)
    {
        %<body>
    }
    %closefile buf
%endfunction
%% codegen_script.tlc
%include "func_gen.tlc"

%createrecord codegen_rec{...
    ret       "float"...
    funcname  "my_cal"...
    argument  "int a"...
    filename  "calculate.c"...
    body      "//body      \
               float b;     \
               b = sin(a);   \
               return b;"...
}
%<code_gen(codegen_rec.filename,codegen_rec.ret,codegen_rec.funcname,codegen_rec.body,codegen_rec.argument)>

生成的文件为:

//calculate.c    
#include <math.h>
float my_cal(int a)
{
    //body      
               float b;     
               b = sin(a);   
               return b;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值