世纪电源网社区logo
社区
Datasheet
标题
返回顶部
原创

【Saber仿真技巧】C语言的子程序调用

[复制链接]
查看: 3720 |回复: 5
1
cumtzhangwang
  • 积分:6197
  • |
  • 主题:320
  • |
  • 帖子:2214
积分:6197
LV8
副总工程师
  • 2012-6-30 19:53:43
Saber是如何调用C语言子程序的,其过程基本分为两个步骤。

第一步,C是编译性语言,因此要将写好的C语言子程序编译为动态链接库文件(DLL)之后才能被Saber调用。注意:编译好的DLL文件可放在工作目录下,以确保Saber能找到该文件。

第二步,如何让Saber知道要调用这个编译过的C语言子程序,这需要在MAST语言模型中声明并调用子程序函数,这样Saber仿真时就会将该子程序加载到内容中,在仿真运算中加以调用。

下面为具体实例:在Saber中调用具有求和功能的C语言子程序

1.编写具有求和功能的C语言子程序


2.将编写好的 C语言子程序编译为动态链接库文件(.DLL

用微软VC编译器很容易生成.DLL文件(我用的是VC++6.0),具体步骤可以百度或者谷歌,这里就不在介绍了。编译完成之后,生成的DLL文件(add.dll)要放在工作目录下。

3.利用MAST语言模型对C子程序进行调用

MAST语言模型如下图所示:


MAST语言具体语法可参考Saber自带帮助文档。
收藏收藏2
cumtzhangwang
  • 积分:6197
  • |
  • 主题:320
  • |
  • 帖子:2214
积分:6197
LV8
副总工程师
  • 2012-6-30 19:55:38
  • 倒数5
 
完成MAST模型之后可为模型建立符号并测试其功能是否匹配之前的输入输出函数关系定义。符号及测试电路如下图所示:


参考文献:
Domono大师的博文:http://blog.dianyuan.com/article/333669~
Saber帮助文档~
glorious1985
  • 积分:134
  • |
  • 主题:0
  • |
  • 帖子:17
积分:134
LV2
本网技师
  • 2012-7-6 21:21:06
  • 倒数4
 
好东西!顶一个
鲜儿
  • 鲜儿
  • 离线
  • LV6
  • 高级工程师
  • 积分:1352
  • |
  • 主题:8
  • |
  • 帖子:945
积分:1352
LV6
高级工程师
  • 2012-9-6 17:34:35
  • 倒数3
 
感谢分享
yanxxxx
  • 积分:31
  • |
  • 主题:0
  • |
  • 帖子:1
积分:31
LV1
本网技工
最新回复
  • 2016-11-20 15:32:17
  • 倒数1
 
大神你好,我学习一下您讲的方法步骤后,试验了一下,但是不成功,劳烦大神看一下问题

QQ截图20161120153136.png (40.18 KB, 下载次数: 46)

QQ截图20161120153136.png

add.zip

848.6 KB, 下载次数: 24, 下载积分: 财富 -2

youmasai
  • 积分:354
  • |
  • 主题:0
  • |
  • 帖子:127
积分:354
LV4
初级工程师
  • 2014-11-8 17:37:55
  • 倒数2
 
谢谢楼主分享
热门技术、经典电源设计资源推荐

世纪电源网总部

地 址:天津市南开区黄河道大通大厦8层

电 话:400-022-5587

传 真:(022)27690960

邮 编:300110

E-mail:21dy#21dianyuan.com(#换成@)

世纪电源网分部

广 东:(0755)82437996 /(138 2356 2357)

北 京:(010)69525295 /(15901552591)

上 海:(021)24200688 /(13585599008)

香 港:HK(852)92121212

China(86)15220029145

网站简介 | 网站帮助 | 意见反馈 | 联系我们 | 广告服务 | 法律声明 | 友情链接 | 清除Cookie | 小黑屋 | 不良信息举报 | 网站举报

Copyright 2008-2024 21dianyuan.com All Rights Reserved    备案许可证号为:津ICP备10002348号-2   津公网安备 12010402000296号