Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.01.2014, 00:17   #1
SilverSwift
Senior Member
 
Регистрация: 21.09.2013
Сообщений: 109
Вес репутации: 0
SilverSwift is an unknown quantity at this point
По умолчанию Re: Arduino, digitalRead(), замена, работа через порт

Цитата:
В Ардуине масса полезного кода
То убогий медленный digitalWrite, то масса полезного кода... Вас не поймешь

Цитата:
Но просто так на дурака ардуиновские исходники в свой проект не инклудятся
Скажу очевидную вещь: любые исходники можно включить в любой проект, если удовлетворить все зависимости. Только назвать это "моя библиотека" нельзя даже с натяжкой.

Цитата:
например, функции TCP/IP
Реализованы например в avr-uip, для использования не требуют предварительного ковыряния в исходниках. А printf реализован в stdio для avr-libc.

Цитата:
большая часть кода для датчиков перепахалась в итоге почти полностью
Цитата:
Известно, что переписывать существующий открытый код в своём изложении - дурной тон, это раз, бесполезная трата времени, это два.
ОК, я Вас понял, а Вы?

Цитата:
Здесь задали вопрос про прямой доступ к портам.
Здесь автор темы пишет или переписывает некоторый кусок (говно)кода который во флешку еле влезает. И на протяжении нескольких тем пытается выиграть пару байт и пару тактов. При этом по вопросам складывается впечатление, что у него нет ни опыта, ни знаний, ни понимания что ему нужно в итоге получить. Что делает не признается и судя по тому, что давно не писал тут видимо забросил свою идею. Не самый конструктивный способ общения. Не хочу никого обидеть.

Цитата:
Я ... отвечаю на определённый вопрос.
Говоря по правде в предыдущем вашем посте никакого ответа на вопрос нет. Мысли, мнения, достижения, что тоже не плохо, но...

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

Цитата:
Печально это. Учебная платформа, блин.
Не учебная, исключительно развлекательно-познавательная, для чего она годна вполне. Когда ардуине учат в кружках "робототехники", при технических вузах это тоска зеленая, прикрытие распилов и некомпетентности преподавателей.

Цитата:
Чё? Сэр, что за чушь вы порете? Ардуина, это тусовка и сишный фреймворк по сути, ничего большего (даже форм-фактор плат и то уже спорно).
С вопросом, что есть Arduino я обратился к arduino.cc, где на главной странице сказано:
Цитата:
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists and anyone interested in creating interactive objects or environments
Ардуйня это развлекательный открытый проект, включающий в себя все железо и весь софт. И потому да, если мне понадобится жесткий риал-тайм с высокой точностью, то мне нужно будет взять другой софт и если ресурсов меги не хватит, то и другое железо. Сообщество существует отдельно, как и любое другое сообщество будь то сообщество любителей убунты, stm32 или кроссовок адидас.

Цитата:
готовый сишный код для практически всех популярных приложений ещё никогда лишними не были.
Вы ж сами говорите, что код там плохой, лампочкой моргни и ясно почему станет?

Цитата:
А кто здесь про промышленные задачи писал?
Я, чтобы более полно выразить свое мнение.

Цитата:
Я, скажем, ругаю не её, а систему, которая типа как учебная, но нихрена ничему научить не может.
Она не учебная, она для развлекухи, о чем честно предупредили на главной страничке проекта:
Цитата:
It's intended for artists, designers, hobbyists and anyone interested in creating interactive objects or environments
Никто никого ничему научить не обещает, правда?

Цитата:
И пытаюсь сподвигнуть людей вылезать из этой норы и смотреть по сторонам. Причём для этого даже ничего не надо выкидывать и докупать.
Это дело хорошее, но не благодарное. А докупить все же придется как минимум компоненты, чтобы слепить простой ISP-программатор. Ибо использование ардуинского загрузчика путь не трушного программиста, перешивка фьюзов, например, в нем не предусмотрена.
SilverSwift вне форума   Ответить с цитированием
Старый 11.01.2014, 16:44   #2
DmitryVS
Junior Member
 
Регистрация: 27.11.2013
Адрес: Москва
Возраст: 46
Сообщений: 12
Вес репутации: 0
DmitryVS is an unknown quantity at this point
По умолчанию Re: Arduino, digitalRead(), замена, работа через порт

Цитата:
Сообщение от SilverSwift Посмотреть сообщение
То убогий медленный digitalWrite, то масса полезного кода... Вас не поймешь
Да всё же понятно, полезного кода достаточно, но некоторые вещи выглядят, скажем так, "странно". Вот Wiring, например, очень "странный".

Цитата:
Сообщение от SilverSwift Посмотреть сообщение
Скажу очевидную вещь: любые исходники можно включить в любой проект, если удовлетворить все зависимости. Только назвать это "моя библиотека" нельзя даже с натяжкой.
Очевидный вопрос в решении этих зависимостей. Ардуина написана на классах и поставлено всё на пресловутый Wiring, так что собрать отдельный исходник в чистом поле может оказаться довольно морочно. Я научился эту задачу решать, повыкидывав из Ардуины всё лишнее (для меня, если что) и вызывающее у меня негативные эмоции. Найти готовый how-to как-то не получилось, вот я и предлагал поделиться этим опытом. "Своими" библиотеками я и не называл результат, но "собрал для себя", да.

Цитата:
Сообщение от SilverSwift Посмотреть сообщение
Реализованы например в avr-uip, для использования не требуют предварительного ковыряния в исходниках. А printf реализован в stdio для avr-libc.
Если разобрать Ардуину на кусочки, то она превращается в довольно толковый "репозиторий" исходного кода. И остаются сквозные полезные наследования. По-моему, довольно ценное свойство. Собирать несколько разношёрстых либ в один проект я тоже пробовал. Иногда ничуть не проще и не эффективнее получается, т.к. каждая либа от своей "печки" писана.

Цитата:
Сообщение от SilverSwift Посмотреть сообщение
Здесь автор темы пишет или переписывает некоторый кусок (говно)кода который во флешку еле влезает. И на протяжении нескольких тем пытается выиграть пару байт и пару тактов. При этом по вопросам складывается впечатление, что у него нет ни опыта, ни знаний, ни понимания что ему нужно в итоге получить. Что делает не признается и судя по тому, что давно не писал тут видимо забросил свою идею. Не самый конструктивный способ общения. Не хочу никого обидеть.
Не берусь судить. Знать, какие внутри Ардуины "неонки", в любом случае, полезно. Начиная и с того, чтобы самому понять, что не устраивает и какие способы решения могут быть. Как говорится: "в хорошо заданном вопросе...".

Цитата:
Сообщение от SilverSwift Посмотреть сообщение
Говоря по правде в предыдущем вашем посте никакого ответа на вопрос нет. Мысли, мнения, достижения, что тоже не плохо, но...
Хм... ну многовато эмоций, согласен, но... Вопрос:
"хотелось бы УСЛЫШАТЬ МНЕНИЯ:
- где можно и корректно использовать "такую замену" ардуиновским функциям
- где нет
- какие особенности
- подводные камни
- итд"
Ответ: "...все обращения к железу я всегда переписываю напрямую. Это к вопросу, возможно ли это. Да, не только возможно, но и крайне полезно для производительности. Никаких особенностей нет, кроме того, что надо внимательно прочитать даташит на AVR'ку и понять что и как управляется."
Я не готов писать статью на тему управления портами, признаю. Вот пара полезных ссылок. Для совсем начинающих, чтобы понять как это работает: AVR. Учебный курс. Устройство и работа портов ввода-вывода. И очень мощная статья для гуру "плюсов" и желающих прокачаться до 80го уровня: Работа с портами ввода-вывода микроконтроллеров на Си++.
Ещё по поводу "особенностей" добавлю. Если, при переходе с Wiring на прямое управление портами, система стала "как-то не так" себя вести, то это вероятнее всего следствие увеличения быстродействия. Код может начать, например, банально эффективнее ловить дребезг или какую-то ВЧ наводку на входе. Тормоза Wiring работали как типа программный ФНЧ. Или просто код написанный на задержках съехал с верного тайминга, т.к. исчезла паразитная задержка на вызовах Wiring.

Цитата:
Сообщение от SilverSwift Посмотреть сообщение
С вопросом, что есть Arduino я обратился к arduino.cc, где на главной странице сказано:
Цитата:
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists and anyone interested in creating interactive objects or environments
Ардуйня это развлекательный открытый проект, включающий в себя все железо и весь софт.
Справедливости ради, про развлекательный, это вы сами придумали. Перевод звучит так: "Ардуино - это открытая платформа для электронного прототипирования, основанная на простом в использовании "железе" и софте. Она предназначена для художников, дизайнеров, любителей и всех интересующихся интерактивными объектами или средами". Ну, если считать, что "художники и дизайнеры" в состоянии только развлекаться, то да... Я бы отнёс эту штуку к классу познавательно-развивающих игрушек. А для них, всё-таки, основная целевая функция - обучение.

Цитата:
Сообщение от SilverSwift Посмотреть сообщение
Это дело хорошее, но не благодарное. А докупить все же придется как минимум компоненты, чтобы слепить простой ISP-программатор. Ибо использование ардуинского загрузчика путь не трушного программиста, перешивка фьюзов, например, в нем не предусмотрена.
Хм, таки да. Я как-то не подумал. В своё время я собрал программатор на LPT за один вечер и не заметил "накладный расходов". А можно было и просто 5 кусков провода залудить. Теперь то будет проще купить программатор на USB, чем искать комп с LPT. Впрочем, этих программаторов за недорого китайцы наклепали в изобилии. Покупать Ардуину всё равно выгоднее у них же, а не в ЧиД долбанутом, каком-нибудь.
DmitryVS вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:59. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика