roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 05:36

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




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 28 янв 2016, 19:14 
Не в сети
Аватара пользователя

Зарегистрирован: 14 май 2008, 15:49
Сообщения: 1585
Откуда: Москва
ФИО: Алексей
А что ты вкладываешь в понятие плюсов? Вот хорошее из интернетов, рекомендации по использованию плюсов под микроконтроллеры: don't use new/delete, avoid exceptions, avoid virtual classes with inheritance, possibly avoid inheritance all together, be very careful with templates, use inline functions instead of macros, and use const variables instead of #defines.
Фактически, остаются статические классы (читай структуры), исчезает весь STL, никакого Boost'а, смарт поинтеров и прочих радостей жизни. Ну и получается у тебя ANSI C с классами.

Понятно, что если ты пишешь под взрослый арм, у которого сотни килобайт памяти - то почему бы нет, можно что угодно юзать. Но смысл? Выгода может появица на ооочень больших проектах..

_________________
У меня в голове опилки и длинные слова меня только огорчают.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 28 янв 2016, 19:35 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
Цитата:
Вот хорошее из интернетов, рекомендации по использованию плюсов под микроконтроллеры: don't use new/delete, avoid exceptions, avoid virtual classes with inheritance, possibly avoid inheritance all together, be very careful with templates, use inline functions instead of macros, and use const variables instead of #defines.

По правде сказать, весьма спорно. Я бы избегал ромбовидных наследований, переопределенных операций, темплейтов, не налегал бы на деструкторы. Причем в больших плюсах тоже(ну разве что темплейты в больших плюсах можно). Boost и STL не являются частью языка. Но вот наследование, new/delete и лучший контроль за типами могут сильно помочь жить.

Цитата:
сотни килобайт памяти

Вот это точно ерунда. Я применил с++ только однажды, и проект был не так чтобы большой. При переходе с C на С++(наследование захотелось) накладные оказались весьма умеренными, а выигрыш в исходниках - значительный.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 28 янв 2016, 19:57 
Не в сети
Аватара пользователя

Зарегистрирован: 14 май 2008, 15:49
Сообщения: 1585
Откуда: Москва
ФИО: Алексей
Ну в общем я спорить не буду, ибо на плюсах под микроконтроллеры не писал и использование памяти не мерял. В интернетах таких тестов полно и они показывают, но вопрос их корректности тоже открыт.
Скажем так, С для микроконтроллеров более распространен и во многом его изучение как основа для возможного дальнейшего изучения плюсов - хорошее начало.

_________________
У меня в голове опилки и длинные слова меня только огорчают.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 28 янв 2016, 20:02 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
elmot писал(а):
наследование захотелось

Да, наследование свойств окошек со всеми перделками и свистелками так необходимы в драйвере двигателей :)
99% людей вообще не умеют использовать наследование. Все ардуиновские исходники это хорошо показывают. Наследование для микроконтроллеров - зло.
elmot писал(а):
накладные оказались весьма умеренными, а выигрыш в исходниках - значительный.

Покажи пример штоле...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 28 янв 2016, 20:51 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
классы и без наследований полезная штука - нет свистоплясок при именовании. а все эти темы си vs ++ даже не хоилвары, а из пустого в порожнее. и си и плюсы во-первых развиваются, во-вторых активно используются. был бы найден иделаный вариант, осталось бы что-то одно. но за плюшки нужно платить, а там уже каждый выбирает, что ему удобней в каждом случае.


Последний раз редактировалось Angel71 28 янв 2016, 21:09, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 28 янв 2016, 21:08 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Angel71 писал(а):
классы и без наследований полезная штука

А ты откомпили и посмотри код. Реально классы в контроллерах ничего не дают, нет никакой защиты памяти, можно из другого куска программы обратиться к любой защищенной классом ячейке памяти :)
Это просто удобная запись, причем удобная для программиста большого компьютера, для ембеддера это все быдлокод. Ембеддер может полностью контролировать программу. C++ быдлокодер будет только сопли на кулак наматывать. При этом будет говорить - возьми контроллер толще и все будет ок. :roll:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 28 янв 2016, 21:10 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
эээээээээээ, поф. мне реально поф. :) удобно, остальное не колышит. быдлокод, сюси-пуси над каждым тактиком и битиком,... это всё лирика. когда прям нужно вписаться в ресурсы, вписываются. а для сферической коняшки это называется не страдайте фигнёй - берётся за примерно те же деньги или дешевле камушек/платку с большим кол-вом озу, флеша, тактиков, с фпу,... и просто решается задача. кто проспал, напоминаю почему чаще всего используются высокоуровневые языки (с тенденцией к всё большему движению к функциональным) - банально время=деньги. даже ++ это относительно затратный язык и жертвуя эффективностью по тактикам и битикам, получают значительный выйгрыш по времени разработки, меньше гимороя с поиском достаточно профессиональных кодеров и т.д. т.е. банально создают продукт дешевле и быстрей. по фен-шую это для относительно небольшого % задач.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 28 янв 2016, 21:32 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Angel71 писал(а):
остальное не колышит.

Не попасть тебе в рай ембеддеров :D

Вот смотри, есть такой аттракцион, мозги pic32, быдлокод - шо пипец, патамучта "не колышит". СтОит - шо пипец:


Приходит ТЗ - удешевить все в 10 раз :)
Берем ардуинку за 90р., кста по твоей наводке :crazy:. Переписываем код с 32-х битного 80мгц. kontrollera na 8-ми битный 8-мгц (из-за 3.3 вольта питания нунчаков). Пишем на чистом gcc, Кое-что переводим на асм, получаем все тоже самое, но дешевле в 10 раз. Отмазка - возьми контроллер толще - не катит. Надо мной стояли с битой и ждали результат от 90р. платы :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 28 янв 2016, 22:34 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
103c8t6 примерно полтора фантика. букашка 042f4p6 в тссоп20 около фантика. можно и за 50 центов младший арм взять, можно чуть дороже, но и более моднявый. :pardon: смотря чего делать нужно, очень часто на эти все тактики и байтики фиолетово, т.к. их более чем достаточно, т.е. единообразно на фень-хрень "да ты крут, так всё заоптимизил круто, только времени про...".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 28 янв 2016, 22:40 
Не в сети

Зарегистрирован: 26 янв 2016, 17:11
Сообщения: 49
Откуда: Литва
прог. языки: с++
ФИО: Darius Varno
hudbrog писал(а):
В общем и целом, для работы с МК лучше учить чистый C, а не c++.

А вообще, напишу ща телегу. Про "роботику" =) Если говорить серьезно, то 99% того, что обсуждается на этом форуме к робототехнике имеет, мягко говоря, условное отношение. Все же само направление больше про ТАУ и алгоритмы, нежели про покрутить моторчиками. Если хочется заниматься именно этим, то есть куча симуляторов (о которых как раз изначальная тема), там и Microsoft Robotics Developer Studio, и V-REP, Webots, Gazebo. Большинство умеют симулировать разные кинематические схемы, сенсоры, поддерживают с десяток разных аппаратных платформ, которыми могут управлять из вашего кода...


решил изучать с++ так как это просто дополненая версия "с", а так же хочу поступать на роботику, а там в программе обучения как раз есть изучение с++, так что лучше раньше хоть чутка подучиться


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 28 янв 2016, 22:45 
Не в сети
Аватара пользователя

Зарегистрирован: 14 май 2008, 15:49
Сообщения: 1585
Откуда: Москва
ФИО: Алексей
Mr.Crow писал(а):
решил изучать с++ так как это просто дополненая версия "с", а так же хочу поступать на роботику, а там в программе обучения как раз есть изучение с++, так что лучше раньше хоть чутка подучиться

Ну я вот, почитав эти доводы, еще раз бы предложил учить чистый ц, а не плюсы. Но это личное мнение исходя из личного же опыта.. больше писать не буду про это =)

_________________
У меня в голове опилки и длинные слова меня только огорчают.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 28 янв 2016, 23:34 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
Dmitry__ писал(а):
elmot писал(а):
наследование захотелось

Да, наследование свойств окошек со всеми перделками и свистелками так необходимы в драйвере двигателей :)

а кто сказал, что это был контроллер движка? Таки обслуживание дисплея и было. не окошки, а экранчики.

Цитата:
99% людей вообще не умеют использовать наследование.

контроллеры-то тут причем?
Цитата:
Все ардуиновские исходники это хорошо показывают.

Все ардуиновские исходники хорошо показывают, что среди ардуинщиков 80% - быдлокодеры. Что с наследованием, что без.
Исходники на PHP показывают тоже самое про говносайтописателей.
Наследование - зло для поколения инстаграм, а не для контроллеров.
Цитата:
elmot писал(а):
накладные оказались весьма умеренными, а выигрыш в исходниках - значительный.

Покажи пример штоле...

Не выложено нигде... Постараюсь не забыть.

Цитата:
Скажем так, С для микроконтроллеров более распространен и во многом его изучение как основа для возможного дальнейшего изучения плюсов - хорошее начало.

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

Добавлено спустя 8 минут 39 секунд:
Dmitry__ писал(а):
Это просто удобная запись

Так и есть. А С - удобная запись ассемблера. А асм - удобная запись хекса. А хекс - удобная запись бинарника.
А бинарник - удобная запись как электроны по затворам транзисторов флеши распихивать.
Цитата:
, причем удобная для программиста большого компьютера,

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 28 янв 2016, 23:56 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
elmot писал(а):
а кто сказал, что это был контроллер движка? Таки обслуживание дисплея и было. не окошки, а экранчики.

Вот это и есть удел наследования, передавать свойства шрифтов :) А кто сказал, что это роботостроение?
elmot писал(а):
Так и есть. А С - удобная запись ассемблера. А асм - удобная запись хекса. А хекс - удобная запись бинарника.
А бинарник - удобная запись как электроны по затворам транзисторов флеши распихивать.

Так не есть, технология должна опираться на возможности железа, а если твое наследование после компилятора игнорируется, то это просто костыль для быдлокодеров, чтоб себя чувствовали ембеддерами :)
elmot писал(а):
удобная для программиста, который знает, что делает, вне зависимости от размера компьютера.

Ага, который даже не может прочитать листинг своей программы. Наследование -очередная парадигма, которые рождаются и умирают, и которая очень плохо ложится на железяки с ограниченной памятью, отсутствие mmu и.т.д. И никакая сила не заставит эти все узлы появиться в одном чипе. Вон, даже 2мб. озу не могут засунуть в чип уже лет 20 как.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 29 янв 2016, 00:06 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
:) чайник и стиралка это тоже бибобот. а если у них ещё и дисплей красивай, то вообще моднай бибобот. :ROFL: и потребителю глубоко ... что там за феншуйный или кривокосый код в камушке работает, как впрочем и какая начинка напихана - максимум это для побухтеть, когда оно ломается и то не взирая на начинку.
на чипы с 2мб банально не увидели достаточного спроса. кому сильно нужно было, докидывали рядышком хоть недорогие фрамки, хоть озу/флеш. в младших армах не использовалось, зато в некоторых старших моделях озу/флеш напаивались сверху, а сейчас наконец-то допёрли, что слоёный пирог или 3д компоновку можно делать сразу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программа для эмуляции робота
СообщениеДобавлено: 29 янв 2016, 00:38 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Да, да, да, только почему-то когда меняешь плату с пупер sh7021( (SH7000) Series Embedded 32-Bit RISC Controller), с мегабайтом внешнего озу, с плисами для двигателей и lcd, и ставишь вместо всего этого avr БЕЗ ВСЕГО, и станок чпу получает огромную кучу ништякоф. Сказать почему? Правильно - быдлокод против народного открытого grbl :)
Почувствуй разницу:
Изображение
Изображение

Добавлено спустя 4 минуты 50 секунд:
Angel71 писал(а):
на чипы с 2мб банально не увидели достаточного спроса. кому сильно нужно было, докидывали рядышком хоть недорогие фрамки, хоть озу/флеш. в младших армах не использовалось, зато в некоторых старших моделях озу/флеш напаивались сверху

Щаззз, внешнее озу говоришь, на частоте процессора? Это проблема совсем другого рода. Интел разрабатывал блекфин для аналогдевиц, и сразу сократила все хотелки, чтоб обрабатывать видео, надо хитро переключать жалкие 300кб. внутреннего кеша L2.
Ты тупо посмотри сколько транзисторов в самом крутом процессоре и сколько транзисторов в самом худом dram :P

Добавлено спустя 6 минут 59 секунд:
Intel Core i5, Количество транзисторов: 995 миллионов.
995000000 /8 бит / 2^20 мегабайт /6 транзисторов на бит = 19мб. dram без учета дешифраторов адреса и логики :D


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

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


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

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


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

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