目次
前
次
1ビットフラグ定義
メモリ容量の小さいマイコンを利用する場合は、フラグに1バイトを
割り当てるのは勿体ない。
1バイトを符号なし8ビットを考えて、1バイトで8個のフラグを管理
できるようにする。
フラグ定義
Cでは、構造体、共用体の応用とみなして、次のようにフラグを定義する。
ビッグエンディアンの場合
typedef union {
struct {
unsigned B7:1;
unsigned B6:1;
unsigned B5:1;
unsigned B4:1;
unsigned B3:1;
unsigned B2:1;
unsigned B1:1;
unsigned B0:1;
} BIT ;
unsigned char DR ;
} FLAGSP ;
リトルエンディアンの場合
typedef union {
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;
} BIT ;
unsigned char DR ;
} FLAGSP ;
フラグの使い方
フラグを定義しただけでは、使えないので、変数として宣言してから
利用する。
フラグの利用例は、以下。
FLAGSP x_flags;
#define AFLAG x_flags.BIT.B0
#define BFLAG x_flags.BIT.B1
#define CFLAG x_flags.BIT.B2
#define DFLAG x_flags.BIT.B3
#define EFLAG x_flags.BIT.B4
#define OFF 0
#define ON OFF+1
x_flags.DR = 0 ;
AFLAG = ON ;
BFLAG = OFF ;
if ( CFLAG == ON ) {
x = a + b ;
}
目次
前
次