Единственный рабочий способ это (как предложил gala) с использованием таймера.
Запускаем таймер в 16 битном режиме с перезагрузкой с частотой 1кГц.
В прерывании пишем код
TIMER++; //глобальная переменная (unsigned int), пользовательский таймер
Подпрограммо задержки будет иметь вид
void Delay(unsigned int T) // 1T = 1мс
{
unsigned int TF;
TF=TIMER;
while((TIMER-TF)<T);//сама задержка
}
Применение
Delay(100); // задержка на 100 мс
Все
Сообщение отредактировал evg123 - Jan 25 2007, 13:02