Технический форум по робототехнике.
=DeaD= » 13 июл 2011, 15:50
Так понятней?
- Код: Выделить всё • Развернуть
int cmdNum=0;
int stepsLeft=0;
while(1){
if(stepsLeft==0){
cmdNum++; if(cmdNum>1) cmdNum=0;
case(cmdNum){
0: Forward (250); stepsLeft=100; break;
1: Spin_Right(); stepsLeft=100; break;
};
if(obstacleDetected()){
Backward(250);
delay(1000);
Spin_Right();
delay(1000);
};
delay(20);
stepsLeft--;
};
gambit6 » 13 июл 2011, 20:58
Сделал так:
- Код: Выделить всё • Развернуть
// О С Н О В Н О Й Ц И К Л П Р О Г Р А М М Ы
void loop(){
int cmdNum=0;
int stepsLeft=0;
while(1){
if(stepsLeft==0){
cmdNum++; if(cmdNum>1) cmdNum=0;
switch(cmdNum){
case 0: Forward (250); stepsLeft=100; break;
case 1: Spin_Right(); stepsLeft=100; break;
};
if(obstacleDetected()){
Backward(250);
delay(1000);
Spin_Right();
delay(1000);
};
delay(20);
stepsLeft--;
};
}
Включаю робота и он начинает делать Spin_Right потом затихает и ничего не делает.
Если сразу после включения, когда он начинает вертеться отмахнуть рукой перед датчиком то едет назад, потом Spin_Right и опять останавливается =(((
Где-то ошибся?
=DeaD= » 13 июл 2011, 21:17
Попробуйте:
- Код: Выделить всё • Развернуть
if(stepsLeft==0){
cmdNum++; if(cmdNum>1) cmdNum=0;
switch(cmdNum){
case 0: Forward (250); stepsLeft=100; break;
case 1: Spin_Right(); stepsLeft=100; break;
};
Заменить на более простое:
- Код: Выделить всё • Развернуть
if(stepsLeft==0){
if(cmdNum==0){
Forward (250); stepsLeft=100; cmdNum=1;
}else{
Spin_Right(); stepsLeft=100; cmdNum=0;
};
gambit6 » 13 июл 2011, 21:29
Теперь вертится как волчек постоянно =)))) А когда датчик срабатывает, отъезжает и снова вертится
=DeaD= » 13 июл 2011, 21:51
Может у вас Forward (250); криво написана и не работает?
Добавлено спустя 2 минуты 10 секунд:Упс, скобку забыли по ходу...
- Код: Выделить всё • Развернуть
while(1){
if(stepsLeft==0){
if(cmdNum==0){
Forward (250); stepsLeft=100; cmdNum=1;
}else{
Spin_Right(); stepsLeft=100; cmdNum=0;
};
};
if(obstacleDetected()){
Backward(250);
delay(1000);
Spin_Right();
delay(1000);
};
delay(20);
stepsLeft--;
};
gambit6 » 13 июл 2011, 23:07
ОГРОМЕННОЕ СПАСИБО! ОНО ПОЕХАЛО =)))
GlassEagle » 15 июл 2011, 14:46
Не смог удержаться...
А что такое "блуждающий цикл"???? Блин, облазил весь интернет (как "любимые", так и нелюбимые поисковые системы) - нашёл это сочетание только применительно к вулканологии и к, пардон, "женским болезням" (шмугл, кстати, ужЕ знает об этой нашей ветке, насчёт шмяндекса - не проверял). Решил, было, что это какое-то новое слово в программировании на паскакале. Но, похоже, это просто "новое слово" у отдельно взятого учителя информатики.
gambit6 » 17 июл 2011, 16:14
Помимо "блуждающего цикла" есть еще и тролли, которые к словам цепляются.