Нужно присвоить значение регистру, например: T2CON = (0xF<<T2OUTPS0)|(1<<TMR2ON)|(0x3<<T2CKPS0); До сих пор всегда компилятор вычислял константу (при работе с другими компиляторами) и в виде байта подставлял значение. В данном случае компилятор организует вычисление (команд на 30). #define не помогает. При этом я не понимаю чего-же всё таки я не понимаю...