vmp (08.12.2011 16:37, просмотров: 211) ответил LordN на все забыл. ткните носом в азбуку где расписано как изменить пару бит в байте.
Создай структуру с битовыми полями - пусть компилятор думает. :)
typedef struct {
unsigned char f1 : 2;
unsigned char f2 : 2;
unsigned char f3 : 2;
unsigned char f4 : 2;
} T_TETRA;
T_TETRA val;
......
val.f3 = 2;
Или вручную:
val &= ~(3 << (2*N)); // сбросить старое
val |= (newval & 3) << (2*N);
P.S. При одновременной работе из основной программы и прерываний будут чудесатые эффекты.