“自定义”C代码与嵌入式编码器和TI C2000

26次观看(过去30天)
你好所有的,
对于F28379D-ControlCard的一个小项目,我使用了来自simulink的嵌入式编码器和C2000支持包。我必须从模拟设备接口AD7616,慢慢地,我对整个事情感到愤怒……
为了让AD7616工作,我必须完成AD的特殊初始化,这需要一些等待状态。为了得到这个初始化,我在我的simulink模型中创建了一个子系统,其中包含一个事件侦听器和一个自己的子系统,其中包含一个for- iterator、开关实例和一些GPIO和SPI。一切都很好,但我必须满足一些时间要求,这可以实现,如果我有一些小的延迟在设置代码。所以我所需要的是编码器将插入“DELAY_US(5)”,同时生成c代码,这是我的实际问题的主要部分。如果我在生成ccs项目后手动插入这行代码,一切都很好,但必须有一种方式,编码器将自行完成。
所以我的问题是,如果存在一些simulink-block,它会在需要的地方添加我的手写代码,或者会导致需要的代码行?
到目前为止我尝试过的:
  • use c-function-block:导致错误“DELAY_US(5)的隐式声明”。看起来,simulink没有识别出这个函数,但在生成项目并手动添加代码行后,µC会做这件事。此外,所有需要的目录,包括包含必要文件的目录,都出现在生成的CCS-Project中。
  • 使用Simulink-Coder/Custom Code中的块:这些块不能用于带有事件监听器的子系统。如果我删除监听器,在生成的源代码中需要的代码行,但这不能是在我的初始化子系统中删除事件监听器的解决方案,因为这个子系统只需要在通电后运行一次。
我希望有人有类似的问题,可以帮助我解决这个问题。与此同时,我会努力解决这个问题,如果有什么变化,我会发布一些更新。
亲切的问候,
罗伯特Zipprich
1评论
捕鸟者
捕鸟者 2021年3月22日
手动编辑从Simulink模型生成的代码的唯一方法是使用自定义代码块。因此,您需要找到一个关于使用事件侦听器结构的替代方案。

登录评论。

接受的答案

罗伊·马修
罗伊·马修 2021年4月18日
编辑:罗伊·马修 2021年4月18日
C函数块需要在模拟目标中定义的函数原型,或者仅用于代码生成,在C函数块本身中定义。
所以,你可以像下面这样调用函数:
如果未定义MATLAB_MEX_FILE/*只有代码原*/
走读生空白DELAY_US (int)
DELAY_US (5);
endif
1评论
罗伯特Zipprich
罗伯特Zipprich 2021年4月19日
太棒了,这段代码开箱即用。非常感谢你的帮助!

登录评论。

更多答案(0)

2022世界杯八强谁会赢?


释放

R2020b

世界杯预选赛小组名单社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!世界杯预选赛小组名单

开始狩猎!

Baidu
map