|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
關(guān)于TI的DSP頭文件的問題。 |
| 作者:liping_88 欄目:DSP技術(shù) |
// GPIO A CONTROL register bit definitions */ struct GPACTRL_BITS { // bits DESCRIPTION Uint16 QUALPRD0:8; // 7:0 QUAL period Uint16 QUALPRD1:8; // 15:8 QUAL period Uint16 QUALPRD2:8; // 23:16 QUAL period Uint16 QUALPRD3:8; // 31:24 QUAL period }; 這樣定義是什么意思? Uint16 QUALPRD0:8; :8是什么意思? |
| 2樓: | >>參與討論 |
| 作者: kanyi305 于 2006/10/23 16:27:00 發(fā)布:
:8是什么意思 此表示整一個(gè)無符號(hào)整數(shù)定義為4個(gè)無符號(hào)字節(jié),方便寄存器操作。 |
|
| 3樓: | >>參與討論 |
| 作者: computer00 于 2006/10/23 17:20:00 發(fā)布:
:8是位段,表示QUALPRD0占8個(gè)bit |
|
| 4樓: | >>參與討論 |
| 作者: liping_88 于 2006/10/24 9:52:00 發(fā)布:
謝謝大家!! 我應(yīng)該可以這樣認(rèn)為: 對(duì)于整個(gè)結(jié)構(gòu)體一共占用了4*8=32個(gè)位, 如果我定義一個(gè)變量 struct GPACTRL_BITS tTemp; 那么tTemp.QUALPRD0 = 0xaa 就意味著將32位空間的低8位賦值0xaa了。 如果對(duì)IO這樣定義再操作就方便了。 例如: struct GPADAT_BITS { // bits DESCRIPTION Uint16 GPIO0:1; // 0 GPIO0 Uint16 GPIO1:1; // 1 GPIO1 Uint16 GPIO2:1; // 2 GPIO2 Uint16 GPIO3:1; // 3 GPIO3 Uint16 GPIO4:1; // 4 GPIO4 Uint16 GPIO5:1; // 5 GPIO5 Uint16 GPIO6:1; // 6 GPIO6 Uint16 GPIO7:1; // 7 GPIO7 Uint16 GPIO8:1; // 8 GPIO8 Uint16 GPIO9:1; // 9 GPIO9 Uint16 GPIO10:1; // 10 GPIO10 Uint16 GPIO11:1; // 11 GPIO11 Uint16 GPIO12:1; // 12 GPIO12 Uint16 GPIO13:1; // 13 GPIO13 Uint16 GPIO14:1; // 14 GPIO14 Uint16 GPIO15:1; // 15 GPIO15 Uint16 GPIO16:1; // 16 GPIO16 Uint16 GPIO17:1; // 17 GPIO17 Uint16 GPIO18:1; // 18 GPIO18 Uint16 GPIO19:1; // 19 GPIO19 Uint16 GPIO20:1; // 20 GPIO20 Uint16 GPIO21:1; // 21 GPIO21 Uint16 GPIO22:1; // 22 GPIO22 Uint16 GPIO23:1; // 23 GPIO23 Uint16 GPIO24:1; // 24 GPIO24 Uint16 GPIO25:1; // 25 GPIO25 Uint16 GPIO26:1; // 26 GPIO26 Uint16 GPIO27:1; // 27 GPIO27 Uint16 GPIO28:1; // 28 GPIO28 Uint16 GPIO29:1; // 29 GPIO29 Uint16 GPIO30:1; // 30 GPIO30 Uint16 GPIO31:1; // 31 GPIO31 }; struct GPADAT_BITS tIOs; tIOs.GPIO31 = 0; 就將IO口的31數(shù)據(jù)位清零了,其它的不會(huì)受影響。 謝謝大家的幫助,順便再問一下,結(jié)構(gòu)體這樣訪問會(huì)不會(huì)增加代碼長(zhǎng)度影響速度??? |
|
| 5樓: | >>參與討論 |
| 作者: hshui 于 2006/11/4 9:46:00 發(fā)布:
這樣定義肯定是影響速度的! 可以找本關(guān)于C語言的書看一下,前幾天就看到有這樣的用法了. 也可以用來節(jié)省內(nèi)存的使用. 不過覺得應(yīng)該和直接進(jìn)行與或操作差不多.個(gè)人看法,編譯器一般會(huì)優(yōu)化吧 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |