К примеру, есть у меня переменная X=0b00010011, мне надо записать бит номер 3 переменной X в бит номер 4 порта D.
Как это сделать в WinAVR?
Технический форум по робототехнике.
$ilent писал(а):А как же приёмник? =)
if ((x & 0x04) == 0x04) {PORTD |= (1<<4);} else {PORTВ &= ~(1<<4);}
Grover писал(а):К примеру, есть у меня переменная X=0b00010011, мне надо записать бит номер 3 переменной X в бит номер 4 порта D.
#define SBI(p,b) p |= _BV(b)
#define CBI(p,b) p &= ~_BV(b)
#define SetBitState(p, b, s) if (s) SBI(p, b); else CBI(p, b);
#define XBIT 3
SetBitState(PORTB, PB4, (x & _BV(XBIT) ) )