目次

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 ; }
目次

inserted by FC2 system