国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

在自動生成代碼時,Simulink模型里的兩類數據是我們需要考慮的:信號(signal)和參數(parameter)。信號對應于Simulink模塊連線,仿真時一般都會變化;而參數則對應于雙擊模塊時所設置的變量,仿真時一般保持不變。

如何控制這些變量在生成的代碼里的實現?

點擊末尾的 “閱讀原文” 下載本文的案例模型

信號和參數的聲明和定義

要得到:

模型參數p1定義為:int32 p1 = 3;extern int32 p1

模型信號mySig定義為:int16 mySig;extern int16 mySig

怎么做:用Data Object。

實例二

1. 建一個簡單的Simulink模型

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

2. 代碼生成基本配置

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

系統目標文件:ert.tlc

3. 新建數據對象

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

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

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

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

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

4. 信號關聯

在信號線上右鍵,將信號與Base Workspace的數據對象關聯在一起。

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

參數k不需要手動關聯。

5. 生成代碼

Ctrl+B,生成代碼。

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

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

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

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

E-Coder里對數據的默認定義:

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

總結

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 信號
    +關注

    關注

    12

    文章

    2914

    瀏覽量

    80130
  • 變量
    +關注

    關注

    0

    文章

    616

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

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

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

    常用變量介紹

    extern:用在全局變量上表示該變量在其他文件中已經定義;用在函數上作用同全局變量; static:用在全局變量上,和非靜態全局
    發表于 11-21 07:05

    語法糾錯和testbench的自動生成

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

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

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

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

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

    NVIDIA recsys-examples在生成式推薦系統中的高效實踐

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

    STM32IDE如何設定代碼到ITCM中運行?

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

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

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

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

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

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

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

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

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

    為什么MotorControl Workbench無法生成代碼

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

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

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