Для компилятора проше так:
out_data &= (^ (1 << bit_out)); if ( (in_data & (1 << bit_in)) != 0) out_data |= (1 << bit_out);
При использование макросов, будет что-то типа
#define SetBit(out_data,in_data,bit_ou,bit_in) \ { \ out_data &= (^ (1 << bit_out)); \ if ( (in_data & (1 << bit_in)) != 0) out_data |= (1 << bit_out); \ }
далее в теле функций
SetBit (PORTC,data,3,5);
|