.


:




:

































 

 

 

 





, . , , 1 . () 0. .

, .

 

, :

Unsigned char a, b;

a = 0x10; // a = 0b00010000

b = 0x30; // b = 0b00110000

:

Var = 1 << Num;

:

Unsigned char a;

a = 1 << 4; // a = 0b00010000

:

Var = (1<<Num1)|(1<<Num2)|...|(1<<NumN);

:

Unsigned char a;

a = (1 << 5)|(1 << 4); // a = 0b00110000

, "", :

Unsigned char a, mask;

mask = 0x30; // mask = 0b00110000

a = 0x03; // a = 0b00000011

a = a | mask; // a = 0b00110011

Var = Var | (1 << Num);

Var |= (1 << Num);

:

Var |= (1<<Num1)|(1<<Num2)|...|(1<<NumN);

:

Unsigned char a;

a = 0x03; // a = 0b00000011

a |= (1 << 4)|(1 << 5); // a = 0b00110011

:

Var = Var & ~(1 << Num);

:

Var &= ~(1 << Num);

:

Var &= ~((1<<Num1)|(1<<Num2)|...|(1<<NumN));

:

Unsigned char a;

a = 0x87; // a = 0b10000111

a &= ~((1 << 1)|(1 << 2)); // a = 0b10000001

"" , .

:

Unsigned char a, mask;

mask = 0xF9; // mask = 0b11111001

a = 0x87; // a = 0b10000111

a = a & mask; // a = 0b10000001

Ȼ :

Var ^= (1 << Num);

:

Var ^= (1<<Num1)|(1<<Num2)|...|(1<<NumN);

:

Unsigned char a, b;

a = 0x87; // a = 0b10000111

a ^= (1 << 7); // a = 0b00000111

b = 0x87; // b = 0b10000111

b ^= (1 << 7)|(1 << 1); // b = 0b00000101

, ,

if ((Var & (1<<Num))!= 0){

// , Num Var

}

if ((Var & (1<<Num)) == 0){
// , Num Var

}

, , .

:

Var = (Var << 4)|(Var >> 4);

, . . Ȼ .

#define , . , , , , , . #define :

#define

#define ( )

.

:

#define MIN 10

#define MAX (MIN+20)

MIN 10, MAX (10+20) . , , , . , a = MAX*5 a = 10+20*7, a = (10+20)*7, .

, . , , , , #define. , , .

, .

, PORTA,

#define P_KEY PORTA

P_KEY. - , #define, .

,

#define MASK ((1 << 1)|(1 << 2))

#define. , . , .

, .

:

#define MAX(x,y) (((x)>(y))?(x):(y))

a = MAX(i,f);

a = (((i)>(f)?(i):(f));

, , , , .

, . .

:

#define BitSet(var, bit) ((var) |= (1<<(bit)))

:

BitSet(PORTA,5); // 5- PORT

:

#define BitClr(var, bit) ((var) &= (~(1<<(bit))))

:

BitClr(PORTC,4); // 4- PORTC

:

#define BitInv(var, bit) ((var) ^= (1<<(bit))

:

BitInv(PORTB,1); // 1- PORTB

1, 1:

#define BitIsSet(var, bit) ((var & (1<<bit))!= 0)

:

if(BitIsSet(PORTB,1)){ if};

1, 0:

#define BitIsClr(var, bit) ((var & (1<<bit)) == 0)

:

if(BitIsClr(PORTB,1)){ if};

(, macros.h) . , .





:


: 2016-11-24; !; : 737 |


:

:

, ,
==> ...

1505 - | 1487 -


© 2015-2024 lektsii.org - -

: 0.014 .