当前位置:网站首页>2837xd 代碼生成——StateFlow(4)
2837xd 代碼生成——StateFlow(4)
2022-07-02 09:37: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:
边栏推荐
- 一篇详解带你再次重现《统计学习方法》——第二章、感知机模型
- Typora安装包分享
- 微服务实战|声明式服务调用OpenFeign实践
- Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedd
- tinyxml2 读取和修改文件
- Alibaba / popular JSON parsing open source project fastjson2
- Micro service practice | introduction and practice of zuul, a micro service gateway
- 微服务实战|负载均衡组件及源码分析
- Idea view bytecode configuration
- Insight into cloud native | microservices and microservice architecture
猜你喜欢
Matplotlib swordsman - a stylist who can draw without tools and code
微服务实战|原生态实现服务的发现与调用
图像识别-数据清洗
tinyxml2 读取和修改文件
kinect dk 获取CV::Mat格式的彩色RGB图像(openpose中使用)
Chrome browser plug-in fatkun installation and introduction
Chrome browser tag management plug-in – onetab
TD联合Modelsim进行功能仿真
Probability is not yet. Look at statistical learning methods -- Chapter 4, naive Bayesian method
Microservice practice | teach you to develop load balancing components hand in hand
随机推荐
tinyxml2 读取和修改文件
C语言之判断直角三角形
cmake的命令-官方文档
Mathematics in machine learning -- point estimation (I): basic knowledge
BugkuCTF-web21(详细解题思路及步骤)
Chrome浏览器插件-Fatkun安装和介绍
微服务实战|原生态实现服务的发现与调用
Probability is not yet. Look at statistical learning methods -- Chapter 4, naive Bayesian method
A detailed explanation takes you to reproduce the statistical learning method again -- Chapter 2, perceptron model
MySQL事务
From concept to method, the statistical learning method -- Chapter 3, k-nearest neighbor method
每天睡前30分钟阅读Day5_Map中全部Key值,全部Value值获取方式
How to choose between efficiency and correctness of these three implementation methods of distributed locks?
In depth analysis of how the JVM executes Hello World
三相逆变器离网控制——PR控制
西瓜书--第六章.支持向量机(SVM)
大学生四六级作文模板(自创版,成功跨过六级)
Navicat remote connection MySQL reports an error 1045 - access denied for user 'root' @ '222.173.220.236' (using password: yes)
C语言之做木桶
Beats (filebeat, metricbeat), kibana, logstack tutorial of elastic stack