Цитата(Goodefine @ Dec 24 2008, 14:07)

Ну, если для вас ровнее и правильнее убить в цикле значение переменной, то тогда, конечно, так...
Обычно (насколько я понимаю) у вас кусочек программы, похожей на RS232 передачу (разница в том, что
обычно для 232 не хватает еще 2-х бит:Start и Stop)
Дело не в том, убивать ли значение переменной или нет, дело в оптимальности далее полученного кода.
А переменную можно и сохранить/восстановить.
А можно и отдельную функцию сделать, которой сообщается эти 8 бит(байт) и может быть абсолютно всё равно, какие данные перед выходом из функции в этой переменной.
Если не менять переменную, может быть и так:
for (i=0;i<8;i++)
{
if (InByte&(1<<i)) {PortX.Y=1;}
else {PortX.Y=0;}
delay_ms(x);
}
Тут переменная не меняется. Но код по времени не будет точен(сдвигов 1<<i будет от 0 до 7) и между 1-м выводом в порт и 8-м будет
разное время. Системы, чувствительные к длине периода могут дать ошибку. Хотя всё относительно... Если импульс идёт раз в секунду, то лишние 100 тактов наплевать. А если раз в 20-30 тактов-то можно сказать что это мёртвая затея. Там пройдёт только предыдущая затея (счётчик>вывод>сдвиг на 1>задержка)
Но решать по какому пути идти-Вам. Это далеко не все.