
может, разрешать прерывания только тогда, когда нужно:
- Код: Выделить всё
- ...
 ...
 ...
 // Global enable interrupts
 !!!!!! ;// #asm("sei") - это убрать.
 while (1)
 {
 ir_counter =0;
 for (i=10; i !=0; --i)
 {
 #asm("sei")
 TCCR0 |= 1; //включение таймера
 delay_us(280);//даем время таймеру сгенерировать 10 импульсов
 TCCR0 &= 0b11111110; //выключение таймера
 #asm("cli")
 delay_us(392);//пауза 14 импульсов
 }
 
 if (ir_counter>5)
 {
 PORTA.2 = 0;//зажигаем светодиод
 PORTC.4 =!(PINC.4) ;
 PORTC.5 =!(PINC.5) ;
 PORTC.3 = !(PINC.3);
 PORTC.2 = !(PINC.2); //реверс поворотного и тягового двигателей
 delay_ms(500); //задержка для отьезда
 }//если впереди препятствие - включаем СД
 else
 {
 PORTA.2 = 1;}; //если нет - выключаем сд
 }
 }
сначала попробовать так.
но по идее в будущем лучше коммутировать запрет/сброс прпрывания исходящее от TSOPa.



 
  , скорее это косяк программы, согласен с nest-ом - писать поновой, осмысленно...
 , скорее это косяк программы, согласен с nest-ом - писать поновой, осмысленно...
