Как реализоать экономный delay на микроконтроллере?
Только с помощью таймеров и системы прерываний, другого способа не вижу
Самое простое организовать свой диспетчер, типа такого
while(1)
   {
   Task1();
   Task2();
   Task3():
  };
где Taks твои процессы, каждый процесс быстро выполняет и ничего не ждет
Taks1()
{
static step=0;
switch(step)
     {
     case 0: SendCommand();  step=1; break;   //отсылаем команду
     case 1: if(port)  { Led=1; step=0; break;    //ждем ответа
     };
};
};