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.
Аватара пользователя
nest
 
Сообщения: 977
Зарегистрирован: 21 янв 2005, 12:16
Откуда: Germany
Предупреждения: -4
прог. языки: asm

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

Сообщение mitart » 30 авг 2009, 16:18

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

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

этот бампер стал навязчивой идеей, ни о чем уже не смогу думать кроме него, пока не одолею этот коварный тсоп
mitart
 
Сообщения: 43
Зарегистрирован: 07 июн 2009, 10:34
Откуда: Самара
прог. языки: с
ФИО: Артем Митрофанов

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

Сообщение nest » 30 авг 2009, 16:38

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

если везде "да" - переписать всю программу нафиг с нуля ! :) хорошенько продумав алгоритм её работы :)
Аватара пользователя
nest
 
Сообщения: 977
Зарегистрирован: 21 янв 2005, 12:16
Откуда: Germany
Предупреждения: -4
прог. языки: asm

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

Сообщение mitart » 30 авг 2009, 16:40

везде да))

вот только как переписывать алгоритм, т.е. что в нем менять - не знаю :sorry:
mitart
 
Сообщения: 43
Зарегистрирован: 07 июн 2009, 10:34
Откуда: Самара
прог. языки: с
ФИО: Артем Митрофанов

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

Сообщение Vovan » 30 авг 2009, 17:49

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

ТСОП залипнуть не может, :wink: , скорее это косяк программы, согласен с nest-ом - писать поновой, осмысленно...
А вот в тексте постов всё время слово "светодиод" фигурирует: это ИК СД или просто СД?
Так может пока безо всяких моторов и Маркова обойтись? Отладить именно связку ИК СД+ТСОП+индикатор - а уж после того цеплять моторы...ИМХО
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

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

Сообщение mitart » 30 авг 2009, 18:02

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

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


в том то и дело что на этом этапе всё было ок, когда не было никаких задержек и управления двигателями было всё нормально - если препятствие близко - на выходе тсопа импульсы, если препятствия нет - четкая лог. 1. А вот когда добавил эту задержку, то откудато начали появляться на выходе тсопа импульсы, даже когда нет препятствия. Если бы была засветка, то, как мне кажется, без задержки не было бы всё так четко. Может у кого нибудь есть другой вариант кода для тсопа? Все другие варианты которые нашел в темах по тсопу на форуме практически такие же :cry:
mitart
 
Сообщения: 43
Зарегистрирован: 07 июн 2009, 10:34
Откуда: Самара
прог. языки: с
ФИО: Артем Митрофанов

Пред.

Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7