roboforum.ru

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

 

Шасси

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

Сообщение avr123.nm.ru » 09 окт 2006, 18:50

Chip_SET писал(а):Глупый вопрос... как узнать завелся ли кварц?


я в курсе рекомендую ставить в прогу средства диагностики без приборов, т.е. светодиод например может по разному мигать в разных частях программы и тест сообщения выдавать на UART и на ПК как в задачах 4 и 5

avr123.nm.ru/z4.htm         /z5.htm

чтоб не нужно было искать осцил.

=======

можете просто залить спец прогу мигания светодиодом и прикинуть частоту по миганию да и вообще факт запуска кварца.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение avr123.nm.ru » 09 окт 2006, 18:54

в 200 примерах PROTEUS  СУППЕР !!! проекты   proteu123.narod.ru
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Chip_SET » 10 окт 2006, 15:22

Дело пошло. Начал переписывать управляющую программу под КодВижнАВР. Сейчас делаю программу тестовых движений  :)
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение Chip_SET » 12 окт 2006, 15:38

Очередной глупый вопрос...  :roll: Вот тут. В таблице одни цифры указаны, а в самой программе совершенно другие. Можете что либо сказать по этому поводу?
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение Chip_SET » 13 окт 2006, 16:19

Что то у меня по прерываниям МК слишком чуствительный. Вешаю кнопку и оно постоянно срабатывает. Кнопку снял все нормально. Ставил по ниспадающему и по нулю. Одно и то же.
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение avr123.nm.ru » 13 окт 2006, 18:08

можкт что-то не так поняли ?  посмотрите о прерываниях  avr123.nm.ru/03.htm    и  проверте код в VMLAB.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Chip_SET » 13 окт 2006, 21:24

Наверно проблема в отсутствии подтягивающих резисторах. Завтра проверю. Вроде программу переписал нормально, но возникла новая проблема. Двигатель (вперед-назад) странно себя ведет надо менять, а это значит переделать весь редуктор. Т.к. шестеренка которая стоит на двигателе металлическая и не снимается, а подходящих пластмассовых нет  :evil: Еще пару недель гимора.
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение avr123.nm.ru » 13 окт 2006, 22:09

Chip_SET писал(а):Наверно проблема в отсутствии подтягивающих резисторах.


включите внутренние подтяжки  avr123.nm.ru/02.htm
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Chip_SET » 14 окт 2006, 11:49

Я пока программу не изменял. Поставил внешние резисторы. Стало нормально срабатывать но программа не отрабатывает их. В КодВижн стоят установки на вход, подтяжка на Т.

Вот код на обработку:
Код: Выделить всёРазвернуть
interrupt [EXT_INT1] void ext_int1_isr(void)
{
// Place your code here
if(this_move==BR) go(FL);
  if(this_move==BL) go(FR);
  else go(F);

// светодиод

  PORTC.4=1; // горим
  for(d=DELAY;d>0;d--);
  for(d=DELAY;d>0;d--);
  PORTC.4=0; // гасим

  this_move=F;
}
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение Chip_SET » 14 окт 2006, 12:12

Инициализация прерываний:
Код: Выделить всёРазвернуть
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Falling Edge
// INT1: On
// INT1 Mode: Falling Edge
GICR|=0xC0;
MCUCR=0x00;
//MCUCR=0x0A;
GIFR=0xC0;
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение Chip_SET » 16 окт 2006, 17:26

Вот еще кусок кода:

Код: Выделить всёРазвернуть
unsigned char next_move(void){
  unsigned char pp, i;

  pp = rand()/327;     // получаем случайное число 0..99
  for (i=0;i<7;i++){   // ищем соответствие в таблице вероятностей
     if (p[this_move][i] > pp) break;
  }
  this_move = i;       // записываем новое полученное направление как текущее
  return(i);
}
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение Chip_SET » 16 окт 2006, 17:27

Кто нибудь подскажет где грабли?
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Сообщение avr123.nm.ru » 16 окт 2006, 17:55

прерывания не отрабатывает ?

а бит I в SREG  установлен ?

посмотри что происходит в VMLAB
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Chip_SET » 26 окт 2006, 15:06

Дело в том что когда кнопку нажимаешь то загорается светодиод. Не идет обработка на движение. Светодиод стоит специально для отображения работы кнопки.
Аватара пользователя
Chip_SET
 
Сообщения: 147
Зарегистрирован: 04 окт 2005, 16:34
Откуда: Москва, область...

Пред.

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

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

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

Mail.ru counter