新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430中用位段定義自己的標志

        MSP430中用位段定義自己的標志

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

        1.位段的定義

        本文引用地址:http://www.104case.com/article/201611/316579.htm

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

        2.微處理器中標志位的定義

        對于MSP430,是16位處理器,可以一次讀取16位的數據,標志位也可定義為16位的。

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

        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.標志字的引用舉例

        #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)//注意:共用體不能作為函數參數,也不能作為返回值,但是可以使用指向共用體變量的指針

        {

        in_mode -> bool.b0=1;

        in_mode -> bool.b5=1;

        /*也可這樣寫

        in_mode -> BYTE|=0x21;*/

        }

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

        void main(void)

        {

        my_Flag.BYTE=0X00;//整個標志字清0

        while(1)

        {

        mode_task(&my_Flag);

        }

        }



        關鍵詞: MSP430位段標

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 磐安县| 望奎县| 晋中市| 琼中| 盐津县| 南宫市| 潮州市| 资溪县| 龙胜| 涡阳县| 兴业县| 曲靖市| 潮州市| 班玛县| 剑河县| 南部县| 海南省| 云霄县| 沂南县| 手机| 宾川县| 象山县| 牙克石市| 长子县| 油尖旺区| 枣庄市| 城市| 含山县| 仪陇县| 萍乡市| 澄江县| 疏勒县| 宁安市| 茶陵县| 和硕县| 临江市| 天镇县| 武强县| 永清县| 任丘市| 财经|