首页 文章

为Arduino库创建Simulink块,如liquidcrystal

提问于
浏览
6

我想使用Simulink为Arduino Uno硬件创建程序 . 但我想使用现有的库,如liquidcrystal,来处理输出到LCD显示器 . 如何创建包含liquidcrystal类文件的s函数?

我认为s函数是要走的路,因为现有的Simulink Arduino库块实际上是被屏蔽的s函数 . 我正在使用Simulink学生版,所以我认为我不能从模型中编译C代码并将其合并到Arduino IDE中的项目中 .

1 回答

  • 1

    我会把我的评论变成答案...... :)

    好的,要从Simulink创建程序,您需要安装代码生成工具 . ver 会告诉您是否有Simulink Coder和可选的嵌入式编码器 . 如果你're using an older version of MATLAB then it'被称为Real-time Workshop . 如果没有其中任何一个,你就不会生成任何代码 .

    所以假设你可以代码生成:

    S函数是他们的出路:http://www.mathworks.co.uk/help/simulink/s-function-basics.html

    ...虽然有各种工具可以帮助创建S函数 .

    简而言之,这个过程是:

    • 获取sfunc_basic.c(或类似的东西)S-function C文件模板的副本并相应地填充 . 这无论如何都是微不足道的,它可能需要很长时间才能进行编译(见下文),并且在模型中实例化时不会导致MATLAB崩溃 .

    • 使用mex命令编译(请参阅文档) .

    • 在模型中使用块 . 创建一个非常简单的测试工具模型 . 使用创建工作解决方案所需的最小模型块 .

    • 创建一个TLC文件,该文件将定义如何在模型C程序中的编译和运行时使用块数据 . 在这里,您将调用liquidcrystal库 .

    • 代码生成/修复错误与TLC和/或生成代码中的S函数/修复错误/重复直到完成:)

    所有这些步骤都可以进行大量扩展 . 这个过程有点像第一次,但你会学到很多关于S函数,model.RTW文件,TLC以及上面所有的调试 .

    哦,是的,调试S功能可以是一个球 . 准备使用像visual studio这样的东西“附加”到matlab进程来调试它 .

    丰富

相关问题