当前位置:网站首页>2837xd 代码生成——StateFlow(4)
2837xd 代码生成——StateFlow(4)
2022-07-02 06:35:00 【Quikk】
2837xd 代码生成——StateFlow(4)
16 Chart调试
在Animation中可以进行设置调试过程的转移速度。

16.1 设置断点类型:
1)chart只能打上进入时的断点:

打上断点后,左下角会有相应的标识。

2)State打断点,有三种类型:I、进入State II、在State中 III、退出State

打上断点后,State2左下角会出现相应的标识,点击能够看到断点类型:

3)同样的操作,转移也可以打入断点:

4)在Model Explorer中可以为事件打上断点:

16.2 断点管理:
点击任意一个断点,在出现的对话框中点击Breakpoints List进入断点管理。这个断点管理是不局限于某个模型的,若你打开了多个模型,则多个模型的断点都会在断点管理上显示。

断点管理界面如上,这里使用的官方例程(Command Window输入sf_car即可进入)。断点管理的界面上Condition含义是:当满足条件时,断点才会生效。这跟在C中打断点一样,我们有时候会希望在循环时,第多少次循环进入断点。Hits是记录进入断点的次数。
断点可以较快的定位Chart的错误之处。
17 Watch Data
在信号线上,右键可以选择加入Watch Data Window:

选择完毕之后,会弹出Watch Data Window的窗口。后面的DEBUG即可。
18 调用Work Space变量
调用的基本语言格式是
y=ml.x; //x需要在Work Space中已经进行定义;
注意:需要将chart的动作语言设置成为 C语言动作(Matlab语言不行)

其他操作同常规进行:

这里可以快速定义模型的回调函数,进行定义,免除手动定义(回调函数具体内容请自行查阅Simulink说明):


ml语句也可以进行重载:
y=ml('sin(%f)',u); //u是Work Space的变量,这里的sin函数可以替换成任何Matlab的内建函数
y=ml.my_sin(u); //my_sin是自己编写的matlb函数文件

19 StateFlow 调用c代码
分别编写好.c和.h文件放置在同一目录下:

然后进入 Configuration Parameters中进行相关的设置:


然后在Chart中进行调用即可。这里因为引入的是C语言文件,所以动作语言必须选择C语言。
20 2837d使用Chart进行构建模型搭建实例
这里搭建一个实时的计时器模块,其分为初始化模块和XINT模块和计数器模块。

1)变量这里使用的是Data Store Memory模块,在属性里面可以设置变量的类型。

2)初始化模块。初始化KEY作为外部中断使用,本来想用LED灯指示初始化过程,但是失败了。原因是:生成的代码将GPIO的两条指令放置在了step函数进行运行。现在想到的是,直接在初始化模块里面加入点亮和熄灭的函数。因为初始化模块加入的代码总是放置在初始化函数的最后面。打个比方:如果生成的代码使用到了GPIO0作为I/O使用,那么一定会在初始化模块中进行初始化。在初始化代码里面可以直接使用位操作给GPIO端口赋值就可以操作。但是后面的步长注意一定要使用到GPIO0。(这样才能保证被初始化)。

3)外部中断函数模块,这里两个中断函数功能一致。都是在中断函数中,将(0-1循环)的数值存入变量(XINT1、XINT2)中。如果上一次执行XINT函数,存储的是0,那么下一次执行就会存储1.这样就产生了一个脉冲的上升沿。对应的可以产生下降沿。这个边沿信号就可以作为Chart的事件。


4)Chart模块实现了计数的功能,可以由XINT1、XINT2分别启动和复位计数。这里的TIC事件是一个随着步长产生0、1序列,如果步长设置为0.01,那么当执行100次TIC事件。可以认为经过了1秒。经过60s就将min指定为+1。注意因为ccs使用c代码驱动,所以这里的chart动作语言必须选用c语言。


5)实验结果。这里直接开启SCI_A进入仿真模式,然后按下按键进入Running:


边栏推荐
- [go practical basis] how to verify request parameters in gin
- Operation and application of stack and queue
- hystrix 实现请求合并
- VIM operation command Encyclopedia
- Microservice practice | declarative service invocation openfeign practice
- 概念到方法,绝了《统计学习方法》——第三章、k近邻法
- C语言之做木桶
- c语言编程题
- 微服务实战|声明式服务调用OpenFeign实践
- MySql报错:unblock with mysqladmin flush-hosts
猜你喜欢

告别996,IDEA中必装插件有哪些?

Watermelon book -- Chapter 6 Support vector machine (SVM)

Chrome浏览器插件-Fatkun安装和介绍

Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedd
![[go practical basis] how to install and use gin](/img/0d/3e899bf69abf4e8cb7e6a0afa075a9.png)
[go practical basis] how to install and use gin

Redis installation and deployment (windows/linux)

Required request body is missing: (cross domain problem)

Solution to amq4036 error in remote connection to IBM MQ

微服务实战|微服务网关Zuul入门与实战

每天睡前30分钟阅读Day6_Day6_Date_Calendar_LocalDate_TimeStamp_LocalTime
随机推荐
分布式锁的这三种实现方式,如何在效率和正确性之间选择?
个人经历&&博客现状
数构(C语言--代码有注释)——第二章、线性表(更新版)
微服务实战|声明式服务调用OpenFeign实践
每天睡前30分钟阅读Day5_Map中全部Key值,全部Value值获取方式
Creation and jump of activity
JVM指令助记符
记录一下初次使用Xray的有趣过程
Matplotlib swordsman - a stylist who can draw without tools and code
Alibaba /热门json解析开源项目 fastjson2
洞见云原生|微服务及微服务架构浅析
一次聊天勾起的回忆
VIM operation command Encyclopedia
Attributes of classfile
Knife4j 2.X版本文件上传无选择文件控件问题解决
双非本科生进大厂,而我还在底层默默地爬树(上)
zk配置中心---Config Toolkit配置与使用
idea查看字节码配置
Demand delineation executive summary
Redis installation and deployment (windows/linux)