Программирование ардуино на Си
- Войдите на сайт для отправки комментариев
Чт, 03/09/2020 - 11:05
Здравствуйте,дорогие спецы по ардуино
Искал материалы по данной теме,но в большинстве случаев все сводилось к тому,что учат только как светодиодом замигать и все
Можете пожалуйста скинуть хороший источник по данной теме или книгу
Не можете найти, потому что "учиться программировать Си в Ардуино" - это все равно что "учиться водить зеленую машину".
Си в ардуино точно такой же, как в любом другом месте :), поэтому ищите просто любой хороший учебник по С/С++. В прикрепленной теме в песочнице есть несколько ссылок
Нету "учебника С/С++". Это два разных языка. Ардуино программируют на С++. Точка. В учебнике С нету информации, чтобы понять, как работать с апи arduino. Хватит вводить новичков в заблуждение.
Я вот не знаю С++. 25 лет на Си пишу. Как то это не мешает в среде ардуины делать работающие программы.
А ведь еще совсем не пятница. Пошел за попкорном.
Нету "учебника С/С++". Это два разных языка.
Да лан. "два разных" :) Все знают, что C++ - это просто "С с классами". :)
Прошу прощения, у меня нет университетского образования. я самоучка. Для меня Си и С++ всегда было неразделимым целым и менять это мнение не собираюсь :))))
Ну вот именно, что самоучка советует учебники, содержимого которых сам не знает.
Завтра уже пятница. можем начинать обсуждение острой темы "С и С++" :)
Однако смотрю под одеялом запрещенный хрустальный шар - показывает. что клиент вообще не об этом спрашивает :) Под "языком С для ардуино" многие неофиты понимают прямую запись в регистры...
Ну вот именно, что самоучка советует учебники, содержимого которых сам не знает.
вставлю свои пять копеек, лежали у нас вышедшие из строя ИБП (3квт),ходил я вокруг них, ходил и всё не решался
взяться за ремонт, так как в электронике очень давно, более 50 лет, понимаю насколько это сложно...
А вот один молодой человек в электронике совсем никак, то-есть совсем, даже на начальном уровне, взялся и, отремонтировал, 7 штук из восьми, в восьмом постреляло всё вплоть до микропроцессора, но он и его и заменил и ПО прошил, но пока не поднял...попутно более полсотни блоков питания АТХ починил, чтоб руку набить...
А если бы был не самоучка? Лень и отговорки нас разрушают...
И этого молодого человека звали... Альберт Эйнштейн.
Спасибо!
Почему задал такой вопрос, мне кажется,что для МК немного другие команды нужны и сам подход(могу ощибаться,потому что только начал изучать программирование)
Поэтому подумал,что от других направлений логика алгоритмов будет отличаться
А если бы был не самоучка?
"Не бойтесь делать то, что не умеете. Помните, ковчег построил любитель, — профессионалы построили Титаник."
Дэйв Берри
ЗЫ: когда был сильно моложе и работал на одном производстве, тамошний киповец очень сильно на меня обижался, типа, чего тебе не сидится, чего ты все лезешь да чего-то изобретаешь... )))
А если бы был не самоучка? Лень и отговорки нас разрушают...
это не лень, это называется "опыт".
Никогда не увлекался электроникой, пока не взял в руки ардуино. За последние два года починил : дома - стиральную машину, микроволновку, телевизор, на работе - компрессор и прибор подготовки воздуха. (перечисляю только то, что кончилось успехом)
И знаешь, какой вывод я сделал по итогам каждой из авантюр? - "прикольно, но второй раз не полезу". А у тебя опыт - 50 лет. Не удивительно. что ты ничего не рвешься чинить :)))
Начинать надо с изучения просто С, без ++ ;)) по книге КиР (Керниган и Ричи), хотя бы первые главы (первые 4 - обязательно, 5 и 6 - желательно). Решая примеры и запуская код в любом онлайн ИДЕ или поставив GCC на свой компьютер. Это даст возможность программировать и понимать код.
Потом можно переходить к объектному программированию. Можно Страуструпа читать, можно, если тяжко, что-то из серии "для чайников". Не сразу всё. Если уже учился программированию, то легче будет. Современные языки - они почти все объектные.
Формально скетч пишется на С++, пока ты в начале пути, разницы с С ты не поймешь, да и не нужна она тебе.
----------------------
Ты про особенности контроллеров (МК) спросил? Общие правила программирования остаются. Уже нет (почти нет) тех МК, для которых нужно было вылизывать каждый байт кода на языке ассемблера. Но памяти часто мало и её нужно экономить, многие МК имеют Гарвардскую архитектуру (погугли), что дает дополнительные требования и ограничения.
А про ОНЛАЙН IDE это про то, что я подумал??? Чо, так можно было??? А ссылки будут?
А про ОНЛАЙН IDE это про то, что я подумал??? Чо, так можно было??? А ссылки будут?
Садись, дружок, я расскажу тебе про Яндекс! ;))))
Вот тебе первое сцылко из яндеха: https://ideone.com/
--------------------
лень искать ысчо. Есть такие, которые асм код даже для АВР процессора показывают. ;)))
Ищите и обрящете, толците и да отвезится вам. (с)
А статус пинов там где??? Яж про дурдуину... Есть ОНЛАЙН шоп без излишеств, хотя-бы посмотреть на пины и сериал монитор???
Спасибо за совет
насчет особенностей
я думал,что ардуино на си выглядит по другому в отличие от родного языка processing,а значит надо знать команды не processing,а команды Си(то есть вращение серво машинкой или что-то другое)
новичок в программировании,поэтому такие вопросы)
Родной язык arduino - C++. Не С, не processing, а C++.
я думал,что ардуино на си выглядит по другому в отличие от родного языка processing
вы что-то путаете, ардуина на processing ВООБЩЕ не программируется. Язык processing - это скрипты для виндоуз, кмк
Буду знать
Говорю же,новичок пока что в этом деле)
А ассемблер хорошо было бы изучить?
в отличие от родного языка processing
Уже не первый раз вижу это бред про процессинг? Вот ты, как новичок, откуда это взял?
Была, да вроде и есть, среда процессинг с неким языком. На ее основе написано ИДЕ ардуино. Но к программированию контроллеров эта конструкция не имеет никакого отношения.
Но еще раз спрашиваю: а откуда ты взял фразу "родной язык - процессинг". Чтобы знать источник бедового тезиса.
А ассемблер хорошо было бы изучить?
;))))))))))))))))))) Исключительно наизусть!
--------------
Слушай! В песочнице есть прикрепленное сообщение, там ссылки на книги, которые полезны. Начинай с них, а не с форумов, ОК?
Не так часто бываю на этом форуме,поэтому правила не знаю(да,надо почитать)
А что такого спросить в разделе для новичков?Вы,можно сказать,даете вектор по изучению МК
В начале темы можно сказать задал один вопрос,а появилось целое рассуждение
Отличный источник знаний для новичка,тем более про ссылки на книги на форуме я не знал
И почему-то на форуме у вас ничего нельзя спрашивать,задавал как-то вопрос,тоже отнеслись странно
Как будто особенное сообщество со своими правилами,вопросы же по теме,а не о другом
Тем более чего стоит помочь новичку
Да не в правилах дело а в сетевой этике. Задавать вопросы детского уровня не принято на профессиональных форумах. Мы вот раздел "песочница" у себя сделали, но злоупотреблять им не стоит. Не в обиду. Просто представь, что подобные вопросы задаются практически каждый день. Мы же не на работе, где обязаны иметь терпение ;)))). Следовательно еще пара вопросов и потечет глумление и негатив, оно тебе надо? Пока все милы и доброжелательны... ты не поверишь, как быстро это может измениться!
И да, к слову, а почему ты не прочел прикрепленную тему "для все новичков"? Там и ссылки и куча полезного именно для новичка. Мы её долго и старательно строили.
На форум два раза только заходил
И да,спасибо за грамотное разъяснения ситуации
А то в прошлый раз кроме негативной реакции больше ничего не сказали)
Теперь буду знать как у вас здесь все устроенно
Родной язык arduino - C++. Не С, не processing, а C++.
"вы хочете песен? Их есть у меня!"
Родной язык в ардуино это машинные команды. А С++ это в Ардуино IDE
Все с идиотскими замечаниями высказались?
Все с идиотскими замечаниями высказались?
нет, нет, можно мне еще?!
Родной язык в ардуино это машинные команды.
родной язык ардуино - итальянский!
Sono un italiano, Un italiano vero!!
Все с идиотскими замечаниями высказались?
Нет! Тема сисег нираскрыта!!! Хде-ж можно "пагамить" дурдуину, допустим, с тела или планшета? Уотт фчём вапрос. Йесть варики???
Вроде тут можно https://www.tinkercad.com/
Вроде тут можно https://www.tinkercad.com/
Тут ваще бес сисег, ибо не выросли исчо)))
"гамить" на дурдуине с пазло-кодом это очень современно и креативно!
Все с идиотскими замечаниями высказались?
нет, нет, можно мне еще?!
Родной язык в ардуино это машинные команды.
родной язык ардуино - итальянский!
Sono un italiano, Un italiano vero!!
капитэ итальяно?
Пару лет назад писал код в Atmel Studio 7, компилировал, прошивал ардуино мини через самодельный программатор из ардуино уно, при этом использовал CV AVR именно для загрузки hex файла, потому что там есть вариант ардуино прошивать и по-ходу встроен avrdude. Дело было давно, поэтому не помню, сейчас заново вспоминаю, ищу информацию, приобрел программатор UsbAsp, так как с дуней слишком много проводков.
Кто, что знает по этой теме - пишите поподробнее, спасибо!
У меня было куплено много дунек мини, вот пришлось придумывать как их прошивать языком СИ, и мне понравилось больше, чем процессингом писать, по крайней мере чувствуешь себя программистом)
по крайней мере чувствуешь себя программистом)
почувствуй себя хакером, найди информацию о прошивке USB-ASP-ом сам - в гугле инфы море
Сегодня как раз это сделал.
Подключил дуню через этот программатор:
https://aliexpress.ru/item/32670511994.html?spm=a2g0s.9042311.0.0.264d33edhz7NDY&_ga=2.66458862.1772834680.1620046841-1795391527.1606565040
Проверочный код на Си в Atmel Studio 7, работает как положено, моргает встроенный светодиод:
Скомпилировал, а на плату закинул через программу:
Программа для USBAsp V2.0
Программу разработал «Боднар Сергей», работает не только с китайским программатором USBAsp v.2.0, но и другими программаторами. Первым делом скачиваем программу, разархивируем и запускаем «AVRDUDEPROG.exe».
шикарный проверочный код :)
не стал запариваться, сразу всем портом мигает)
Фигасе, тема всколыхнулась)) Хоть и не Пятница, накину на вентилятор))))
Нету "учебника С/С++".
Таки, есть! Первый же попавшийся в моей жизни - Шилдт, "полное руководство" - первые 200+ страниц про подмножество С. Пока до раздела С++ дочитал, успел несколько больших и важных проектов запилить. Потом пришлось все с нуля на человеческом языке переписывать
Поподробнее о чем речь?
подмножество С
Подмножество C это не C. Этак у тебя будет учебник по русскому/французскому языку, потому что в обоих есть буква А.
-
Подмножество C это не C.
В тех 200+ страницах Шилдта разницу начинающему уловить очень сложно. Собственно, аффтар и запилил это 200+ страниц, дабы продемонстрировать из чего есть пошел С++ и какие у них отличия. И всячески на эти отличия в тексте давит
Завидоваю я вам... По нескольку больших и важных проектов за один присест делаете. А за второй - переписываете. А то сидишь тут неделями над попытками понять, как в HID report descriptor запихать правильно несколько Usage pages.
Завидоваю я вам... По нескольку больших и важных проектов за один присест делаете.
Не, я люблю вино и ленивый, я их год делал. Ну как год, в ненастную часть года. Это я вам тогда завидовал, такие проекты вам на пару часов)) Да еще и переделывать все пришлось, в итоге)) Позорище.
А большие они были по количеству строк. Во второй редакции в несколько раз уменьшились))
Родной язык arduino - C++. Не С, не processing, а C++.
Согласно https://arduino.github.io/arduino-cli/0.20/sketch-specification/ в проект могут входить как .cpp так и
.c Поэтому и вопрос. Можно ли весь проект написать на с, кроме файла .ino. Насколько C для ARDUINO отличается от стандартного. Я пользуюсь книгой "Программирование на языке С" - Подбельский, Фомин
Можно ли весь проект написать на с, кроме файла .ino. Насколько C для ARDUINO отличается от стандартного. Я пользуюсь книгой "Программирование на языке С" - Подбельский, Фомин
можно, при условии, что вы в своей программе не будете использовать С++.
"С для ардуино" не существует, в ардуино используется стандартный GNU C
"С для ардуино" не существует, в ардуино используется стандартный GNU C
только без std:: Примеры с cout и cin работать не будут
Можно ли весь проект написать на с, кроме файла .ino. Насколько C для ARDUINO отличается от стандартного. Я пользуюсь книгой "Программирование на языке С" - Подбельский, Фомин
можно, при условии, что вы в своей программе не будете использовать С++.
"С для ардуино" не существует, в ардуино используется стандартный GNU C
Спасибо
Поэтому и вопрос. Можно ли весь проект написать на с, кроме файла .ino. Насколько C для ARDUINO отличается от стандартного. Я пользуюсь книгой "Программирование на языке С" - Подбельский, Фомин
Весь проект написать на Си можно.
Но только именно - весь проект.
Использование каких-либо сторонних библиотек - под большим вопросом.