<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > EMC2的硬件抽象層原理與實(shí)現

EMC2的硬件抽象層原理與實(shí)現

作者: 時(shí)間:2009-12-28 來(lái)源:網(wǎng)絡(luò ) 收藏

依照上述做法將所有功能模塊全部導出到HAL后,在rtapi_app_main()的最后調用hal_ready(comp_id),表明該Component已經(jīng)初始化完畢,可以開(kāi)始使用了。
在關(guān)閉Component退出時(shí),系統會(huì )自動(dòng)調用hal_CNC.C中編寫(xiě)的rtapi_app_exit()。其如下:
void rtapi_app_exit(void){hal_exit(comp_id);)
hal_exit()關(guān)閉并釋放HAL及RTAPI使用到的系統資源,使這些資源可被重新使用。
自帶的工具comp對源文件hal_CNC.c和hal_CNC.h進(jìn)行編譯,即可得到名為hal_CNC的Compo-nent。該組件自動(dòng)放入的模塊庫中,隨時(shí)可被其他軟件模塊調用。

本文引用地址:http://dyxdggzs.com/article/152181.htm


6 HAL的使用
以DAC為例,在Linux下的命令行輸入“halrun”進(jìn)入的HAL運行界面,輸入:
loadrt threads namel=thread periodl=1000000
創(chuàng )建名為“thread”的線(xiàn)程,該線(xiàn)程執行周期為1 ms。
執行:
loadrt hal_CNC
將所編寫(xiě)的系統組件調入,執行:
addf CNC.DAC.write thread
將DAC的寫(xiě)函數加入到前面創(chuàng )建的線(xiàn)程thread,使之以與thread相同的執行周期被調用。然后使可通過(guò)控制DAC的引腳來(lái)輸出相應的電壓。如:
setp CNC.DAC.0.value 1
該語(yǔ)句將使電路板上的DAC輸出端子輸出1 V的電壓。
用類(lèi)似的方法將其他軟件模塊通過(guò)與HAL的引腳連接,便了其他軟件對HAL的調用。


7 HAL在ClassicLadder中的調用
以從DAC輸出5 V為例,將classicladder的一個(gè)名為“classicladder.0.s320ut-00”的有符號32位整型Pin賦值為5。該值經(jīng)過(guò)HAL中的一個(gè)類(lèi)型轉換Component“s32tofloat”變?yōu)楦↑c(diǎn)數,再連接到hal_CNC中的DAC單元的引腳“CNC.DAC.0.value”,便在實(shí)際電路板的DAC輸出端輸出5 V的電壓。引腳連接如表1所列。

其中“→”和“←”表示引腳之間的連接,用HAL中的Sig-nal。
在軟PLC中設置變量W10的值為5,則在DA輸出端子引腳上用萬(wàn)用表測到5 V的電壓。軟PLC中的操作輸出如圖3所示。

其中4個(gè)窗口表示DAC的4個(gè)通道,分別令DAC輸出5 V、2 V、3 V、4 V的電壓。


8 結 論
實(shí)踐證明,HAL的引入可極大提高軟件實(shí)現的硬件無(wú)關(guān)性。從軟件的角度來(lái)看,其面向的硬件具有同質(zhì)的接口,對硬件的操作具有相似的方法與架構,極大地簡(jiǎn)化了軟件對硬件的控制,方便了同類(lèi)軟件在不同硬件平臺間的移植。這就為軟硬件同步設計、分工協(xié)作奠定了良好的基礎。該架構已成功應用在文中所述的鋰電池卷繞恒張力控制器中,取得了良好效果。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>