roboforum.ru

Технический форум по робототехнике.

ИК локатор робоклуба

Re: ИК локатор робоклуба

nest » 30 авг 2009, 15:23

всё ещё мало что понял из обьяснений :)

может, разрешать прерывания только тогда, когда нужно:
Код: Выделить всёРазвернуть
...
...
...

// 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.

Re: ИК локатор робоклуба

mitart » 30 авг 2009, 16:18

К сожалению так тоже на заработало :sorry:

Но я кое что заметил(не знаю, было ли это раньше, или появилось только щас, после изменения кода). При включении питания мк светодиод горит сразу(сигнал на тсопе - высокий лог. уровень во время делея, пачки импульсов между делеями). При этом, естественно, если двигатели включены то они переключаются 2 раза в секунду. Но если выключить питание двигателей(питание мк не трогал), а через пару секунд включить, то светодиод погасает, переключения прекращаются, на выходе тсопа появляется четкая лог. 1. Если к тсопу поднести препятствие, а потом убрать, то светодиод зажигается и уже не погасает(опять высокий лог. уровень во время делея, пачки импульсов между делеями) Отсюда у меня мысль - возможно каким то образом тсоп залипает и не может вернуться к нормальной работе после отработки первой задержки, после обнаружения препятствия

этот бампер стал навязчивой идеей, ни о чем уже не смогу думать кроме него, пока не одолею этот коварный тсоп

Re: ИК локатор робоклуба

nest » 30 авг 2009, 16:38

а ТСОП подключён через RC как по даташиту ?
моторы снабжены подавителями помех ?
питание моторов и остальной схемы раздельное ?

если везде "да" - переписать всю программу нафиг с нуля ! :) хорошенько продумав алгоритм её работы :)

Re: ИК локатор робоклуба

mitart » 30 авг 2009, 16:40

везде да))

вот только как переписывать алгоритм, т.е. что в нем менять - не знаю :sorry:

Re: ИК локатор робоклуба

Vovan » 30 авг 2009, 17:49

mitart писал(а):возможно каким то образом тсоп залипает и не может вернуться к нормальной работе после отработки первой задержки

ТСОП залипнуть не может, :wink: , скорее это косяк программы, согласен с nest-ом - писать поновой, осмысленно...
А вот в тексте постов всё время слово "светодиод" фигурирует: это ИК СД или просто СД?
Так может пока безо всяких моторов и Маркова обойтись? Отладить именно связку ИК СД+ТСОП+индикатор - а уж после того цеплять моторы...ИМХО

Re: ИК локатор робоклуба

mitart » 30 авг 2009, 18:02

Если "светодиод", значит просто светодиод, обычный.

тладить именно связку ИК СД+ТСОП+индикатор - а уж после того цеплять моторы...ИМХО


в том то и дело что на этом этапе всё было ок, когда не было никаких задержек и управления двигателями было всё нормально - если препятствие близко - на выходе тсопа импульсы, если препятствия нет - четкая лог. 1. А вот когда добавил эту задержку, то откудато начали появляться на выходе тсопа импульсы, даже когда нет препятствия. Если бы была засветка, то, как мне кажется, без задержки не было бы всё так четко. Может у кого нибудь есть другой вариант кода для тсопа? Все другие варианты которые нашел в темах по тсопу на форуме практически такие же :cry:


Rambler\'s Top100 Mail.ru counter