IAR环境定义位变量标志位 STM8 MSP430通用

首先建立一个公共点H文件,加入通用代码如下

typedef union
{
    struct
    {
        unsigned char b0:1;
        unsigned char b1:1;
        unsigned char b2:1;
        unsigned char b3:1;
        unsigned char b4:1;
        unsigned char b5:1;
        unsigned char b6:1;
        unsigned char b7:1;
    } bits;
} UINT8_VAL;

  通用定义联合体写好以后,要定义一个只占用个Byte的标志位的话,只要定义一下uchar型字节,然后引用它的其中某一位就可以了。

比如在C文件中定义一个联合体,加入代码

UINT8_VAL  BitFlag1 = {0x00};	//每一个bit初始化为0,如果对某一位置1可用BITx

  好了,定义了一个BitFlag1的联合体,如果要在其他点C文件中引用其中的某一个位标志只要在刚刚的点H文件中外部声明一下就可以了,如下代码

//-------------------位变量声明--------------------------
extern UINT8_VAL  BitFlag1;
#define t1msFlag			BitFlag1.bits.b0	// 任务1

  外部声明了联合体 BitFlag1 ,同时宏定义了其中的一个位t1msFlag作为这个联合体中字节的最低Byte位,在其他C文件中就可以直接对t1msFlag进行布尔读写操作了。

 

posted @ 2015-10-12 18:57  眼大5子  阅读(2959)  评论(0编辑  收藏  举报