在自動生成代碼時,Simulink模型里的兩類數(shù)據(jù)是我們需要考慮的:信號(signal)和參數(shù)(parameter)。信號對應(yīng)于Simulink模塊連線,仿真時一般都會變化;而參數(shù)則對應(yīng)于雙擊模塊時所設(shè)置的變量,仿真時一般保持不變。
如何控制這些變量在生成的代碼里的實現(xiàn)?
點擊末尾的 “閱讀原文” 下載本文的案例模型
信號和參數(shù)的聲明和定義
要得到:
模型參數(shù)p1定義為:int32 p1 = 3;extern int32 p1
模型信號mySig定義為:int16 mySig;extern int16 mySig
怎么做:用Data Object。
實例二
1. 建一個簡單的Simulink模型
2. 代碼生成基本配置
求解器:定步長—離散求解器
系統(tǒng)目標(biāo)文件:ert.tlc
3. 新建數(shù)據(jù)對象
打開Model Explorer,點擊菜單的Add,在base workspace里定義參數(shù)數(shù)據(jù)對象p1,進(jìn)行如圖設(shè)置:
這樣在生成代碼的時候,參數(shù)p1就會定義為int32的數(shù)據(jù)類型,并且聲明為extern。而且它的聲明和定義代碼會分別寫入myHdr.h以及mySrc.c。
類似的,新建一個 Simulink.Signal,命名為 mySig,設(shè)置如圖。它的定義和聲明就會默認(rèn)的在模型名.c和模型名.h里 :
4. 信號關(guān)聯(lián)
在信號線上右鍵,將信號與Base Workspace的數(shù)據(jù)對象關(guān)聯(lián)在一起。
參數(shù)k不需要手動關(guān)聯(lián)。
5. 生成代碼
Ctrl+B,生成代碼。
如前面所設(shè)置的,得到參數(shù)p1的定義如圖,寫到自定義的.c.h文件里去了:
信號mySig的聲明和定義如圖,在模型名.c和模型名.h文件里:
E-Coder里對數(shù)據(jù)的默認(rèn)定義:
總結(jié)
所以說,可以使用數(shù)據(jù)對象(Data Object)來定義數(shù)據(jù)在所生成的代碼里的表達(dá)方式。
-
信號
+關(guān)注
關(guān)注
11文章
2794瀏覽量
76896 -
變量
+關(guān)注
關(guān)注
0文章
613瀏覽量
28412
發(fā)布評論請先 登錄
相關(guān)推薦
DFT在生物信號分析中的應(yīng)用
探索設(shè)計稿自動生成Flutter代碼的技術(shù)方案
![探索設(shè)計稿自動<b class='flag-5'>生成</b>Flutter<b class='flag-5'>代碼</b>的技術(shù)方案](https://file1.elecfans.com//web2/M00/0B/1A/wKgZomctcseAA-Q0AAG7vdjIks8352.png)
生成式AI工具作用
STM32CUBEMX生成freeRTOS代碼的時候出現(xiàn)警告
探討AI編寫代碼技術(shù),以及提高代碼質(zhì)量的關(guān)鍵:靜態(tài)代碼分析工具Perforce Helix QAC & Klocwork
ISEDA首發(fā)!大語言模型生成的代碼到底好不好使
![ISEDA首發(fā)!大語言模型<b class='flag-5'>生成</b>的<b class='flag-5'>代碼</b>到底好不好使](https://file1.elecfans.com/web2/M00/E5/F1/wKgZomZFnOqAHsJHAAAfAF7G0-A393.jpg)
使用LL庫時在CUBEMX中設(shè)置了重映射,在生成的代碼中卻沒有重映射是為什么?
Simulink自動生成代碼現(xiàn)階段的學(xué)習(xí)筆記
![Simulink自動<b class='flag-5'>生成</b><b class='flag-5'>代碼</b>現(xiàn)階段的學(xué)習(xí)筆記](https://file1.elecfans.com/web2/M00/CA/B5/wKgZomYfOryASYcYAAAhf1BV3tg663.png)
STM32CubeMX生成代碼軟件卡死的原因?怎么解決?
請問STM32IDE如何設(shè)定代碼到ITCM中運行?
變量位置不同會死機(jī)?郭天祥老師視頻的遺留問題分析答案
![<b class='flag-5'>變量</b>位置不同會死機(jī)?郭天祥老師視頻的遺留問題<b class='flag-5'>分析</b>答案](https://file1.elecfans.com/web2/M00/C0/EF/wKgZomXb5VyAFyqlAABBFPG_6X0233.png)
評論