最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Simulink自動代碼生成(三)函數(shù)

2022-04-27 15:25 作者:秋_石  | 我要投稿

????????編寫任何項目,為了程序的可讀性和可移植至性都會將部分功能進行封裝,因此就涉及到函數(shù)的內(nèi)容。就我個人的應用情況,將函數(shù)為:1、普通函數(shù);2、初始化函數(shù);3、中斷函數(shù)。

1、普通函數(shù)

在Library Browser中找到Function-call subsystem模塊


圖1 外部函數(shù)調用的子系統(tǒng)

????????圖1中就是simulink給出的調用函數(shù)(子系統(tǒng))的模塊,可在內(nèi)部放置自己想要實現(xiàn)的功能,形成一個封裝模塊。模塊有3個端口:1、輸入端口,2、輸出端口,3子系統(tǒng)模塊的函數(shù)調用輸入端口。這些端口都是可以刪除/添加的。

????????這里做一個簡單的反轉函數(shù)功能,input!=output,如圖2所示:


圖2 反轉函數(shù)功能

???????在Library Browser中選擇GPIO模塊以及function-call generator,按照圖3去連接。圖3中也可以將紅框中的模塊都封裝在一塊,形成一個函數(shù)。GPIO10作為輸入信號,GPIO11作為輸出信號,經(jīng)過反轉函數(shù)使得,GPIO11的輸出信號為輸入信號的取反。

圖3 函數(shù)調用


實驗結果

圖5 GPIO11的輸出結果

多函數(shù)調用問題

????????當調用過的函數(shù)不只一個時,需要利用到圖6所示的Function-call split模塊。Function-call split模塊可設置函數(shù)調用的先后順序,帶點的被調用。

圖6 Function-call split模塊


圖7 多函數(shù)調用示意

????????圖7為多函數(shù)調用的示例,mainFunction函數(shù)先于mainFunction1函數(shù)被調用。執(zhí)行順序為先mainFunction然后再執(zhí)行mainFunction1。

使用中發(fā)現(xiàn)的問題

simulink應該不是所有的DSP型號都支持boot from flash模式,就我個人的程序版本而言28377D就不支持,但是28335就支持,這塊我是從2837xD的cmd文件并結合實驗得到的推測。

圖8? 2837xD的cmd文件

2、初始化函數(shù)

????????初始化通常設置為只執(zhí)行一次,因此,這里需要用到enable subsystem。該函數(shù)被調用的前提是能信號端口輸入條件為真。使能信號的觸發(fā)條件可以設置為“held(輸入高)”或者“reset(輸入低)”。

圖9?使能函數(shù)模塊

?????????利用使能函數(shù)模塊構建圖10所示的具備初始化功能的示例。其大致邏輯為,當初始化完成后(這里設置的是外部GPIO信號為高電平),初始函數(shù)給出初始完成標志,使得主程序可以進行。

圖10 具備初始化功能的示例

3、中斷函數(shù)配置方式

Library browser 搜索interrupt,這里選擇軟件中斷SW int trigger

圖11 軟件中斷觸發(fā)器

圖11給出了軟件中斷的模塊和內(nèi)部參數(shù),CPU interrupt number x 和PIE interrupt number?y 組合起來就表示的是INTx,y。如果記不清楚要用的中斷是多少可以點擊Help,幫助里有中斷表。這里要記住選擇哪個中斷組,這于稍后中斷的響應配置有關系。

?

圖12? 硬件中斷響應

????????圖12是DSP硬件中斷響應的模塊,里面的參數(shù)應該與軟件中斷相對應(如果你配置的是外設的中斷,那么這里就需要設置與外設的中斷相適應)。這里的優(yōu)先級是相對的概念,數(shù)字越小優(yōu)先級越高,但是不要超過40。

圖13 中斷函數(shù)示例

????????利用中斷模塊配置了如圖13所示的中斷函數(shù)示例,simulink模型為計數(shù)到2.55s,然后觸發(fā)中斷,在中斷中翻轉一次GPIO口電平狀態(tài)。效果如圖14。

圖14? 中斷示例




Simulink自動代碼生成(三)函數(shù)的評論 (共 條)

分享到微博請遵守國家法律
青岛市| 崇仁县| 航空| 莲花县| 壶关县| 鸡泽县| 阜康市| 城固县| 古蔺县| 鱼台县| 繁昌县| 辉南县| 叶城县| 蕲春县| 铁岭县| 延川县| 连州市| 西乌珠穆沁旗| 通渭县| 邹平县| 铜梁县| 邳州市| 子洲县| 潜山县| 祥云县| 伊春市| 水城县| 阿鲁科尔沁旗| 镇坪县| 囊谦县| 泰州市| 天柱县| 阳曲县| 高州市| 莎车县| 定西市| 博野县| 临海市| 台山市| 赤水市| 天津市|