roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 15:52

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: ИК локатор робоклуба
СообщениеДобавлено: 30 авг 2009, 15:23 
Не в сети
Аватара пользователя

Зарегистрирован: 21 янв 2005, 12:16
Сообщения: 977
Откуда: Germany
прог. языки: asm
всё ещё мало что понял из обьяснений :)

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

// 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: ИК локатор робоклуба
СообщениеДобавлено: 30 авг 2009, 16:18 
Не в сети

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК локатор робоклуба
СообщениеДобавлено: 30 авг 2009, 16:38 
Не в сети
Аватара пользователя

Зарегистрирован: 21 янв 2005, 12:16
Сообщения: 977
Откуда: Germany
прог. языки: asm
а ТСОП подключён через RC как по даташиту ?
моторы снабжены подавителями помех ?
питание моторов и остальной схемы раздельное ?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК локатор робоклуба
СообщениеДобавлено: 30 авг 2009, 16:40 
Не в сети

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК локатор робоклуба
СообщениеДобавлено: 30 авг 2009, 17:49 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
mitart писал(а):
возможно каким то образом тсоп залипает и не может вернуться к нормальной работе после отработки первой задержки

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

_________________
_________
Sincerely,
Vovan


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК локатор робоклуба
СообщениеДобавлено: 30 авг 2009, 18:02 
Не в сети

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

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


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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO