91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

MATLAB ? 來源:djl ? 作者:柚籽 ? 2019-09-17 16:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在自動生成代碼時,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模型

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

2. 代碼生成基本配置

求解器:定步長—離散求解器

系統(tǒng)目標(biāo)文件:ert.tlc

3. 新建數(shù)據(jù)對象

打開Model Explorer,點擊菜單的Add,在base workspace里定義參數(shù)數(shù)據(jù)對象p1,進行如圖設(shè)置:

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

這樣在生成代碼的時候,參數(shù)p1就會定義為int32的數(shù)據(jù)類型,并且聲明為extern。而且它的聲明和定義代碼會分別寫入myHdr.h以及mySrc.c。

類似的,新建一個 Simulink.Signal,命名為 mySig,設(shè)置如圖。它的定義和聲明就會默認的在模型名.c和模型名.h里 :

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

4. 信號關(guān)聯(lián)

在信號線上右鍵,將信號與Base Workspace的數(shù)據(jù)對象關(guān)聯(lián)在一起。

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

參數(shù)k不需要手動關(guān)聯(lián)。

5. 生成代碼

Ctrl+B,生成代碼。

如前面所設(shè)置的,得到參數(shù)p1的定義如圖,寫到自定義的.c.h文件里去了:

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

信號mySig的聲明和定義如圖,在模型名.c和模型名.h文件里:

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

E-Coder里對數(shù)據(jù)的默認定義:

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

總結(jié)

所以說,可以使用數(shù)據(jù)對象(Data Object)來定義數(shù)據(jù)在所生成的代碼里的表達方式。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 信號
    +關(guān)注

    關(guān)注

    12

    文章

    2914

    瀏覽量

    80166
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    616

    瀏覽量

    29513
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    能否詳細介紹一下MOSFET在電機控制中的作用是什么?

    能否詳細介紹一下MOSFET在電機控制中的作用?
    發(fā)表于 12-22 13:11

    分析嵌入式軟件代碼的漏洞-代碼注入

    這些變量中有一些是指針,那么這個平臺甚至可以到達其他非堆棧地址。 真正對攻擊者來說有價值的目標(biāo)是讓攻擊者控制程序的執(zhí)行部分。如果一個局部變量是一個函數(shù)指針,則攻擊者可以通過該指針的后續(xù)調(diào)用來編寫
    發(fā)表于 12-22 12:53

    第7章 變量進階與點陣LED(7.1 7.2)

    走在馬路上的時候,經(jīng)常會看到馬路兩側(cè)有一些LED點陣的廣告牌,這些廣告牌看起來絢爛奪目,非常吸引人,而且還會變化很多種不同的顯示方式。本章就會學(xué)習(xí)到點陣LED的控制方式,同時也會學(xué)習(xí)C語言變量的進階
    的頭像 發(fā)表于 12-10 16:25 ?358次閱讀

    常用變量介紹

    extern:用在全局變量上表示該變量在其他文件中已經(jīng)定義;用在函數(shù)上作用同全局變量; static:用在全局變量上,和非靜態(tài)全局
    發(fā)表于 11-21 07:05

    語法糾錯和testbench的自動生成

    ,回到寫好的Verilog代碼,按住ctrl+shift+p,在彈出的搜索框輸入testbench。 點擊后會自動將當(dāng)前模塊的testbench生成在終端框內(nèi)。 當(dāng)然,本質(zhì)上該插件還是通過python來實現(xiàn)的,因此
    發(fā)表于 10-27 07:07

    使用Simulink自動生成浮點運算HDL代碼(Part 1)

    ,生成的HDL代碼與目標(biāo)無關(guān)。可以在任何通用FPGA或ASIC上部署該設(shè)計。 下面介紹如何在Simulink中創(chuàng)建單精度浮點乘法 直接使用乘法模塊即可,并將輸入口改為單精度浮點 使用Ctrl + g
    發(fā)表于 10-22 06:48

    STM32WB55使用cubemx生成代碼編譯報錯怎么解決?

    使用cubemx生成代碼有一處變量重復(fù)命名報錯
    發(fā)表于 08-05 06:37

    NVIDIA recsys-examples在生成式推薦系統(tǒng)中的高效實踐

    在生成式 AI 浪潮的推動下,推薦系統(tǒng)領(lǐng)域正經(jīng)歷深刻變革。傳統(tǒng)的深度學(xué)習(xí)推薦模型 (DLRMs) 雖已展現(xiàn)出一定效果,但在捕捉用戶興趣偏好和動態(tài)行為序列變化時,常面臨可擴展性挑戰(zhàn)。生成式推薦系統(tǒng) (Generative Recommenders, GRs) 的出現(xiàn),為這一
    的頭像 發(fā)表于 07-04 14:43 ?1140次閱讀
    NVIDIA recsys-examples<b class='flag-5'>在生成</b>式推薦系統(tǒng)中的高效實踐

    STM32IDE如何設(shè)定代碼到ITCM中運行?

    近期使用STM32MUX生成STM32IDE的代碼(MCU是STM32H743),目前希望可以將部分代碼定位到ITCM中運行,加快處理速度,關(guān)于代碼
    發(fā)表于 06-24 06:45

    STM32 touch 4.24.2生成代碼,但是keil編譯不通過怎么解決?

    我是用STM32 touch 4.24.2 生成了一個 驅(qū)動STM32F469-disco的底層驅(qū)動,代碼編譯不過去?提示缺少文件,或者是打不開文件,但是我已經(jīng)添加了文件?如下圖所示: 大家有人遇到過類似的問題嗎?這個touch gfx 軟件
    發(fā)表于 06-09 06:46

    STM32 touch 4.24.2生成代碼,但是keil編譯不通過是怎么回事?

    我是用STM32 touch 4.24.2 生成了一個 驅(qū)動STM32F469-disco的底層驅(qū)動,代碼編譯不過去?提示缺少文件,或者是打不開文件,但是我已經(jīng)添加了文件?如下圖所示: 大家有人遇到過類似的問題嗎?這個touch gfx 軟件
    發(fā)表于 06-04 08:25

    STM32 touch 4.24.2生成代碼,但是keil編譯不通過怎么解決?

    我是用STM32 touch 4.24.2 生成了一個 驅(qū)動STM32F469-disco的底層驅(qū)動,代碼編譯不過去?提示缺少文件,或者是打不開文件,但是我已經(jīng)添加了文件?如下圖所示: 大家有人遇到過類似的問題嗎?這個touch gfx 軟件
    發(fā)表于 04-29 07:31

    STM32 touch 4.24.2生成代碼,但是keil編譯不通過怎么解決?

    我是用STM32 touch 4.24.2 生成了一個 驅(qū)動STM32F469-disco的底層驅(qū)動,代碼編譯不過去?提示缺少文件,或者是打不開文件,但是我已經(jīng)添加了文件?如下圖所示: 大家有人遇到過類似的問題嗎?這個touch gfx 軟件
    發(fā)表于 04-27 06:34

    為什么MotorControl Workbench無法生成代碼?

    我使用MotorControl Workbench5.4.4生成單電機驅(qū)動代碼,使用正交編碼器精度1024,檢查引腳沒問題后,進入生成頁面,識別到STM32CubeMX版本為6.12.1,選擇編譯器為Keil5,Pack包選項選
    發(fā)表于 03-14 06:28

    cunbemx生成RTthread代碼疑似漏復(fù)制文件怎么解決?

    使用6.12.x版本cubemx,勾選X-CUBE-RT-Thread,生成代碼。最后的代碼缺失libcpu文件夾,工程也缺失對應(yīng)的文件
    發(fā)表于 03-13 08:23