Цитата(psL @ Jan 4 2014, 12:52)

Код
bli?FIO_SetValue(2,bli--<<9):FIO_ClrValue(2,bli++<<9);
так короче?

Короче, но не правильно. bli--<<9, bli++<<9 это для чего? Там всегда должно быть (1<<x) или любая другая битовая маска.
Если проблема только в длине записи кода, то тогда уж лучше так:
Код
static int bli = 0;
bli?FIO_SetValue(2,1<<9):FIO_ClrValue(2,1<<9);
bli ^= 0x1
На худой конец можно и так сделать:
Код
if(FIO2PIN&(1<<9)) FIO2CLR = 1<<9;
else FIO2SET = 1<<9;