Вт июл 17, 2018 19:39:05
Вт июл 17, 2018 20:15:28
#define setBit(var, n) (var |= (1 << (n)))
#define clrBit(var, n) (var &= ~(1 << (n)))
#define tstBit(var, n) (var & (1 << (n)))
unsigned char var;
//...
if(tstBit(var, 0)) setBit(PORTB, 5);
else clrBit(PORTB, 5);
if(tstBit(var, 1)) setBit(PORTB, 5);
else clrBit(PORTB, 5);
if(tstBit(var, 5)) setBit(PORTB, 5);
else clrBit(PORTB, 5);
if(tstBit(var, 7)) setBit(PORTB, 5);
else clrBit(PORTB, 5);
Вт июл 17, 2018 20:31:36
Вт июл 17, 2018 20:50:49
#define cpyBit(dst, dst_n, src, src_n) (dst = ((dst) & (~(1 << (dst_n)))) | (((src) & (1 << (src_n))) ? (1 << (dst_n)) : 0))
cpyBit(PORTB, 5, var, 0);
cpyBit(PORTB, 5, var, 1);
cpyBit(PORTB, 5, var, 5);
cpyBit(PORTB, 5, var, 7);
Вт июл 17, 2018 21:09:22
Вт июл 17, 2018 21:20:03
#define cpyBit(dst, dst_n, src, src_n) do{ \
if((src) & (1 << (src_n))) \
dst |= (1 << (dst_n)); \
else \
dst &= ~(1 << (dst_n)); \
}while(0);
#define cpyBit(dst, dst_n, src, src_n) (((src) & (1 << (src_n))) ? (dst |= (1 << (dst_n))) : (dst &= ~(1 << (dst_n))))