roboforum.ru

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

OR Hexapod Control (Qt + GCC + SSC32)

Раздел предназначен для ведения совместных проектов.
Каждый проект предусматривает заказчика, исполнителя и менеджера проекта.
Имеются шаблоны типовых проектов.

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение Duhas » 29 мар 2011, 22:17

имхается мне что только добавляя сравнение мин-а и макс-а в условие...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение setar » 29 мар 2011, 22:22

думаю должна быть функция возвращающая сначала максимум из пары (массива может быть), затем минимум из пары
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение Duhas » 29 мар 2011, 22:25

что то подсказывает что это 100% дольше по выполнению.. чем иф(задание больше мин и мин больше макс или задание больше макс и макс больше мин)
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение setar » 29 мар 2011, 22:42

ок, пока сделаю так,
если будут еще идеи - пишите.
спасибо :)

Добавлено спустя 11 минут 31 секунду:
похоже ?
Код: Выделить всёРазвернуть
if (servo_max_pwm[i]>servo_min_pwm[i]) {
   if (servo_pwm[i]>servo_max_pwm[i]) servo_pwm[i]=servo_max_pwm[i];
   if (servo_pwm[i]<servo_min_pwm[i]) servo_pwm[i]=servo_min_pwm[i];
} else {
   if (servo_pwm[i]>servo_min_pwm[i]) servo_pwm[i]=servo_min_pwm[i];
   if (servo_pwm[i]<servo_max_pwm[i]) servo_pwm[i]=servo_max_pwm[i];
}
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение Duhas » 29 мар 2011, 23:09

ну да, только я правда предлагал прям в условие.. но наверно если компилятор умный - то все равно.. а если туповат, то так быстрее )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение setar » 31 мар 2011, 00:53

добавил контроль горизонта тела (пока ручной)
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение Виталий » 01 апр 2011, 12:18

Код: Выделить всёРазвернуть
servo_pwm[i] = Math.Min(servo_pwm[i], servo_max_pwm[i]);
servo_pwm[i] = Math.Max(servo_pwm[i], servo_min_pwm[i]);


Тогда servo_pwm[i] будет в диапазоне servo_min_pwm[i]..servo_max_pwm[i].

Но лучше просто сразу функцию определить:
Код: Выделить всёРазвернуть
int Bound(int v, int min, int max)
{
   return Math.Max(Math.Min(v, max), min);
}


Как-то так...
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение setar » 01 апр 2011, 12:19

красиво, так и сделаю.
спасибо
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение boez » 01 апр 2011, 13:03

Стоп, а разве это работает в ситуации когда max<min?
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение Виталий » 01 апр 2011, 14:46

Не работает, но это идеологически неверная ситуация...
Можно вот так...
Код: Выделить всёРазвернуть
int Bound(int v, int a, int b)
{
   return Math.Max(Math.Min(v, Math.Max(a, b)), Math.Min(a, b));
}
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение setar » 01 апр 2011, 14:55

это идеологически нужно, min и max это углы, они могут быть достигнуты при большом PWM или маленьком PWM
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение Strijar » 01 апр 2011, 15:17

Виталий писал(а):
Код: Выделить всёРазвернуть
int Bound(int v, int a, int b)
{
   return Math.Max(Math.Min(v, Math.Max(a, b)), Math.Min(a, b));
}


Жэсть... может все-ж при установке min и max один раз проверять на min < max, чем делать это при каждом шевелении суставом?
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение Виталий » 01 апр 2011, 16:31

Да, жесть. Потому что min всегда меньше max.

это идеологически нужно, min и max это углы, они могут быть достигнуты при большом PWM или маленьком PWM

Ну так проверяй угол, а не ШИМ...
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение setar » 01 апр 2011, 16:36

вариант в принципе...
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: OR Hexapod Control (Qt + C + SSC32)

Сообщение wizard256 » 12 апр 2011, 06:01

Здравствуйте! Программер из меня никакой но я нашёл в инете вот ето http://www.lynxmotion.net/viewtopic.php?t=4397 может кто разберётся?
wizard256
 
Сообщения: 4
Зарегистрирован: 05 ноя 2010, 13:15
Откуда: Surgut

Пред.След.

Вернуться в коллективные проекты

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

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