pour mettre un bit a 1
1 2 |
X | 0 = X X | 1 = 1 |
pour mettre un bit a 0
1 2 |
X & 0 = 0 X & 1 = X |
1 2 |
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
uint8_t FLAGS = 0; #define F_f1 0 #define F_f2 1 #define F_f3 2 #define F_f4 3 sbi(FLAGS,f1) //Set FLAG if (FLAGS & _BV(F_f1)) //si flag ON if (!(FLAGS & _BV(F_f2))) //si flag OFF cbi(FLAGS,F_f1) //Clear Flag |