Ещё глотнул пива...
Ведь оператор for работает так:
Код
for([первая инструкция];[условие выполнения];[инструкция после тела]) [тело]
и его можно заменить на:
Код
[первая инструкция]
while ([условие выполнения])
{
[тело]
[инструкция после тела]
}
итого мы можем:
Код
(Direction)? mask=1<<0:mask=1<<7;
while(mask)
{
PORTx=(*byte&mask)? PORTx|(1<<BIT):PORTx&~(1<<BIT);
delay_us(x);
(Direction)? mask<<=1:mask>>1)
}
Или не можем?
По-моему это абсолютно идентичные логически и т.д. конструкции...
Гуру, если не прав, поправьте...