Цитата:
Сообщение от 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. Впрочем, этих программаторов за недорого китайцы наклепали в изобилии. Покупать Ардуину всё равно выгоднее у них же, а не в ЧиД долбанутом, каком-нибудь.