<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > MSP430中用位段定義自己的標(biāo)志

          MSP430中用位段定義自己的標(biāo)志

          作者: 時間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
          在編寫程序中,經(jīng)常需要自己定義標(biāo)志(位)。如果每個標(biāo)志占用一個字節(jié),會占用很大空間,可以用位段來實現(xiàn),把若干個標(biāo)志集中在一個存儲單元中。

          1.位段的定義

          本文引用地址:http://www.ex-cimer.com/article/201611/316579.htm

          關(guān)于位段的定義,就不多說了,去查閱任何一本C語言的書都可以查到

          2.微處理器中標(biāo)志位的定義

          對于MSP430,是16位處理器,可以一次讀取16位的數(shù)據(jù),標(biāo)志位也可定義為16位的。

          下面的定義將位段和共用體結(jié)合在一起用,因為共用體的長度取決于最長成員的長度,因此,可以在共用體中聲明一個int成員,對它清0則可以清除整個標(biāo)志字(覆蓋)。

          union FLAG

          {

          unsigned int BYTE;

          struct

          {

          unsigned b0:1;

          unsigned b1:1;

          unsigned b2:1;

          unsigned b3:1;

          unsigned b4:1;

          unsigned b5:1;

          unsigned b6:1;

          unsigned b7:1;

          unsigned b8:1;

          unsigned b9:1;

          unsigned b10:1;

          unsigned b11:1;

          unsigned :4;

          }bool;

          }myFlag;

          2.標(biāo)志字的引用舉例

          #define change_bit myFlag.bool.b0

          #define sov_bit myFlag.bool.b1

          #define tb0_bit myFlag.bool.b4

          #define tb1_bit myFlag.bool.b5

          #define tb2_bit myFlag.bool.b6

          #define tb3_bit myFlag.bool.b7

          #define tv0_bit myFlag.bool.b8

          #define tv1_bit myFlag.bool.b9

          #define tv2_bit myFlag.bool.b10

          #define tv3_bit myFlag.bool.b11

          /************************************************

          void mode_task(union FLAG *in_mode)//注意:共用體不能作為函數(shù)參數(shù),也不能作為返回值,但是可以使用指向共用體變量的指針

          {

          in_mode -> bool.b0=1;

          in_mode -> bool.b5=1;

          /*也可這樣寫

          in_mode -> BYTE|=0x21;*/

          }

          /********************************************/

          void main(void)

          {

          my_Flag.BYTE=0X00;//整個標(biāo)志字清0

          while(1)

          {

          mode_task(&my_Flag);

          }

          }



          關(guān)鍵詞: MSP430位段標(biāo)

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();