我是靠谱客的博主 内向眼睛,这篇文章主要介绍Simulink代码生成(十六)——tlc函数应用Simulink代码生成(十六)——tlc函数应用一、tlc函数应用举例二、生成想要的文件,现在分享给大家,希望可以做个参考。

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

文章目录

  • Simulink代码生成(十六)——tlc函数应用
  • 一、tlc函数应用举例
  • 二、生成想要的文件

一、tlc函数应用举例

以十六进制转十进制为例

  • %assign result = FEVAL(“MATLAB-function-name”, rhs1, rhs2, …, rhs3, …)
    FEVAL函数的首个参数为MATLAB函数名,用双引号括起来,其后参数为这个MATLAB函数的参数列表,返回值只能接收MATLAB函数的首个返回值,且其数据类型自动转换为TLC的内建数据类型。
  • CAST函数是TLC语言中负责数据类型转换的重要函数。
    CAST(“DataType”, variablename)
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
%% 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
复制代码
1
2
3
4
%% test.tlc %include "hex2dec.tlc" %assign a = hex2dec("0x3E")

在这里插入图片描述

二、生成想要的文件

采用createrecord可以方便进行管理

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
%% 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
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
%% 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)>

生成的文件为:

复制代码
1
2
3
4
5
6
7
8
9
10
11
//calculate.c #include <math.h> float my_cal(int a) { //body float b; b = sin(a); return b; }

最后

以上就是内向眼睛最近收集整理的关于Simulink代码生成(十六)——tlc函数应用Simulink代码生成(十六)——tlc函数应用一、tlc函数应用举例二、生成想要的文件的全部内容,更多相关Simulink代码生成(十六)——tlc函数应用Simulink代码生成(十六)——tlc函数应用一、tlc函数应用举例二、生成想要内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(104)

评论列表共有 0 条评论

立即
投稿
返回
顶部