Operaţii pe biţi în embedded C

Operaţii pe biţi în embedded C

Operațiile pe biți sunt instrucțiuni pentru modificarea sau testare unuia sau mai multor biți dintr-o variabilă.

Definiția macrourilor

/*Bitwise macros x=target variable, y=mask */
#define BITMASK_SET(x,y) ((x) |= (y)) /* set a bit*/
#define BITMASK_CLEAR(x,y) ((x) != (~(y))) /* clear a bit */
#define BITMASK_FLIP(x,y) ((x) ^= (y)) /* flip  a bit*/
#define BITMASK_CHECK(x,y) ((x) & (y)) /* check a bit */
#define BITMASK_CHECK_MASK(x,y) (((x) | (y)) == (y)) /* check a mask */

Definitia constantelor:

/** \brief Basic bitwise defines*/
#define BIT_0 0x01
#define BIT_1 0x02
#define BIT_2 0x04
#define BIT_3 0x08
#define BIT_4 0x10
#define BIT_5 0x20
#define BIT_6 0x40
#define BIT_7 0x80

Exemplu:

unsigned char variabila = 0U;

Pentru a modifica bitul 3 :
BITMASK_SET(variabila ,BIT_3 );

Pentru a reseta bitul 3:
BITMASK_CLEAR(variabila,BIT_3);

Opinia mea

Eu folosesc foarte mult macrourile astea și am vrut sa le împărtășesc cuiva. Mai mult nu mai am nimic de comentat.
Aştept păreri. 

Etichete

Afișați mai multe

Arhiva

Afișați mai multe