Есть ли Вики по С++ для ARDUINO?

Тема в разделе "Arduino & Shields", создана пользователем DrProg, 10 апр 2015.

  1. ИгорьК

    ИгорьК Гуру

    ;) на большее я и не рассчитывал. Ну и на том спасибо!
     
  2. iglooshtosser

    iglooshtosser Гик

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

    1. Он содержит очень мало "слов"-операторов. (Пустой, сравнения, присваивания, вызова функции, два-три цикла, выбора, ветвления (в принципе заменяет и циклы и выбор), и перехода. Всё. всего 9.
    2. Он обладает очень простым синтаксисом, то есть правилами построения "предложений". (Ну, по сравнению с любым естественным языком).

    Единственное что может вызвать сложности у неподготовленного человека - "объекты-классы".
    В общем случае класс описывает модель какого нибудь реального объекта (класса объектов), (например сервы, таймера или ещё чего).
    У класса есть свойства, то есть переменные, значения которых характеризуют состояние объекта такого класса. (Например текущий угол, текущее время или ещё чего).
    И ещё у класса есть методы. То есть функции, то что с ним можно делать (повернуть, сбросить, передвинуть, зажечь-перекрасить).
    Ну и последнее. В программе мы работаем не с классом (не можем же мы работать со всеми сервами как с сущностью), а с экземпляром этого класса, объектом. То есть с этой конкретной сервой, за этим конкретным портом. То есть класс это тип, а объект это переменная этого типа.

    Вот собственно и всё ядро того, что нужно чтобы ПОНИМАТЬ что происходит в программе.

    Пример, который привел ИгорьК, есть вызов метода бетта объекта альфа... То есть мы делаем "бетта" с "альфой" как именно мы это делаем зависит от "гамма".

    мы "write" ,то есть пишем, в (на) radio данные из буфера out по адресу &out длинной sizeof(out).

    И вся премудрость.

    Что же до "публичных функций", то да. И свойства и методы класса могут быть приватными и публичными.
    Публичные это те, к которым можно обращаться из нашей программы, а приватные существуют для внутреннего употребления класса и недоступны из программы.
    Сделать функцию публичной значит поместить её прототип (заголовок описания) в разделе "public" соответствующего класса.
     
    Последнее редактирование: 14 апр 2015
  3. ИгорьК

    ИгорьК Гуру

    Во-первых, ИМХО, Вы сделали зло :)
    Во-вторых, Вы забыли про "&". Это добавит к Вашему ответу еще... хм, даже не знаю сколько строк.
    В-третьих, откуда, собственно, Вы это знаете. Из форумов, видимо? :)
    В-четвертых, вопрос стоял не объяснить написанное (я в вопросе дал прямую ссылку где это кратко разъяснено, чем отвечающий успешно воспользовался), а объяснить написанное со ссылкой на референсы Ардуино.
    Четвертое - самое главное.

    Зло, потому что человек в возрасте 44(!!!) лет искренне верит, что изучать язык надо по форумам. Вы помогли в этом убеждении. Правда, уверен, вряд ли он что-то полезное приобрел из этого, абсолютно правильного, ответа с частичными недостатками.
     
    Последнее редактирование: 14 апр 2015
  4. iglooshtosser

    iglooshtosser Гик

    Ну видите ли...
    Мой ответ в основном адресован DrProg и немного (процентов на 10 Вам и другим опытным и знающим участникам. :)

    Дело в том, что я отчасти согласен с DrProg. Знания нужны "под конкретную задачу". Это не относится к профессиональной деятельности, там ситуация иная.

    Я, например, узнал то, о чем писал, от институтского преподавателя программирования. Что же теперь, я должен посоветовать тому же DrProg поступить в институт? :)

    Я понимаю вашу позицию. Но если для решения небольшой локальной задачки нужно переварить "Кнутта" и "Кернигана и Ричи", и ещё труп страуса (простите :) ), то такое решение может оказаться слишком дорогим. Поэтому я и обращаюсь в таких случаях в сообщества, где "тусуются" люди со знаниями, многократно превосходящими мои. Я так экономлю :) Время жизни и "душевную энергию".

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

    В той же части, где я обращался к знатокам, я имел в виду следующее. Когда я задам "глупый" или "ламерский" вопрос - знайте, я не совсем "нулевич". И постарайтесь помочь. А я в свою очередь чем могу, постараюсь помочь вам. В том числе, и ответив за вас ламеру :)
     
  5. ИгорьК

    ИгорьК Гуру

    1. Вы не поверите, но я с DrProg согласен тоже - Знания нужны "под конкретную задачу".
    Но задача, кажется, очень конкретна, и в посте звучала как "изучаю язык С++". По форуму и рефренсам.
    Не так ли?
    2. В институт - не надо. Надо книжку почитать. и не про ардуино. а про язык С++. Не будем доводить до абсурда, хотя в логике публичных выступлений такой прием очень успешен. И про фундаментальные труды тоже круто, но я посоветовал более простую и доступную книженцию.
    3. Ваш поступок... он ни о чем :) Человек будет дальше верить, что с указателями можно разобраться задавая вопросы Вам. Но... чтобы задать вопрос, надо хоть что-то знать о предмете.
    4. Ламеру я, собственно, ответил. Как и человек передо мной. На вопрос о системных местах, где собрана информация о всех возможных местах: их всего два. Второй и третий посты.
    ... потом я посоветовал почитать книжку, так как речь идет об "изучении языка С++" для Ардуино. :)
     
    MESS нравится это.
  6. iglooshtosser

    iglooshtosser Гик

    Блин. Извините. Я не хотел Вас "зацепить". И обнаруженные Вами демогогические приемы это от того, что я "так чувствую". :) Само получается. Ещё раз извините.
     
  7. ИгорьК

    ИгорьК Гуру

    :) оЦень Ценная ирония :)
     
  8. MESS

    MESS Гик

    Приобрел книгу отца и сына Дейтел " Как программировать на С++" 5 издание 2010г.
     
  9. Unixon

    Unixon Оракул Модератор

    Не знаю, как на счет учебников, но вот справочник есть вполне сносный: cplusplus.com
    Там даже обучалка какая-то есть...
    Единственное требование - свободное чтение и понимание технического английского.
     
  10. iglooshtosser

    iglooshtosser Гик

    Это, имхо, вообще необходимый скил для занятий программированием...
     
  11. MESS

    MESS Гик

    Могу доложить первые впечатления от книги. Очень доходчиво написано. ИгорьК был абсолютно прав, посоветовав отложить ардуино. Книжка конечно увесистая, но мудрая.
    С первых страниц до меня дошло в чем мое главное заблуждение, точнее незнание того, что скетчи используют не набор операторов действий, а набор программных модулей (классов). Меня сбивало с толку, то что в одинаковых "по цели" скетчах используются совершенно разные операторы (функции), с разными названиями, из чего сделал вывод что их так немерянно много, что не стоит заморачиваться с запоминанием...
    Оказывается эти классы можно сочинять. Поправьте, если я "не в ту сторону" начал понимать.
    Однако вопросы уже есть:
    1.как можно проверить пример кода из книги на компьютере, у меня МАС?
    Ведь в IDE напрямую его нельзя вставить
    2.Каким образом можно увидеть код на С++, который загружается в ардуино после компиляции?
     
    Megakoteyka и ИгорьК нравится это.
  12. ИгорьК

    ИгорьК Гуру

    Рад за Вас. :)
    Глобально не совсем понял что Вы сказали на тему функций и классов, но со временем Вы разберетесь с общими вещами.
    1. Примеры из книги проверять надо не в Ардуино, в какой-то IDE, поддерживающей программирование на Маке. Например, CodeBlocks.
    2. После компиляции, собственно, кода на С++ нет - есть машинный код. Его как-то можно вытащить обратно и увидеть, но, поверьте, с нашим с Вами уровнем познаний это ничего не даст.
     
  13. Unixon

    Unixon Оракул Модератор

    Никакого C++ там уже и в помине нет, а вот программу на ассемблере можно получить с помощью avr-objdump.

    Make тут абсолютно ни при чем, это уже из области системы сборки проекта. В Code::Blocks IDE система сборки своя, не завязанная на GNU Make. Для программы из одного файла никакой системы сборки не нужно, достаточно одной команды.

    На Маке, AFAIK, штатно есть XCode.
     
  14. ИгорьК

    ИгорьК Гуру

    То есть на Маке нельзя установить CodeBlocks, писать примеры из книги и запускать их на исполнение?
     
  15. MESS

    MESS Гик

    Я установил CodeBlocks, среда очень универсальная по описанию, но он нерусифицирован, a XCode это наверно только для профессионалов.
    Просто не хватит времени на преодоление дополнительных препятствий.
     
  16. ИгорьК

    ИгорьК Гуру

    С английским придется смириться. И дело в том, что если бы было на русском... все равно бы не помогло :) Придется запомнить названия десятка кнопок, это не критично, поверьте. Больше десятка Вы и пользоваться не будете.
    Что на русском, что на английском сейчас все равно, думаю.
    Логика то простая: создать проект, сохранить проект, скомпилировать да выполнить. Для начала хватит этих четырех кнопок. Надеюсь разберетесь где они.
     
    Последнее редактирование: 15 апр 2015
    MESS нравится это.
  17. Unixon

    Unixon Оракул Модератор

    Ну почему же, вполне можно.

    Тьфу ты, совсем ум за разум заходит...
    Прочитал "программирование на Маке" как "программирование на Make" :D
     
  18. DrProg

    DrProg Вечный нерд

    Господа гуру, очень любезно с вашей стороны получить звание "ламер" человеку, который владеет Ардуино второй день. Новичкам тут рады, и это заметно.

    Возможно вы не совсем поняли мой вопрос, я не пытаюсь вникнуть во что-то запредельно, с вашей точки зрения, сложное для человека извне. Программы я писал с 80х годов сначала из интереса, потом профессионально, в том числе базы данных и создание устройств типа часовой станции. Сейчас я зарабатываю другой деятельностью, но иногда пишу в ностальгических порывах приложения для Android и Windoas Mobile. Для быстрого освоения системы мне нужно лишь несколько примеров и справочная информация, которую никак невозможно придумать самому. Мне нужна википедия по функциям, операторам, библиотекам и прочим элементам языка. И я ее нашел буквально из первых ответов.

    Не знаю с высоты каких таких успехов вы считаете себя махровыми профессионалами на моем фоне. Только потому, что купили эту игрушку чуть раньше?
     
    ИгорьК нравится это.
  19. ИгорьК

    ИгорьК Гуру

    Извините, никто Вас обижать не собирался.

    "Новичкам тут рады, и это заметно." Заметно, что на этом форуме отвечают на ваши вопросы, коих Вы задали немало.
     
    Последнее редактирование: 18 апр 2015
  20. DrProg

    DrProg Вечный нерд

    За ответы спасибо. Но вопросов я пока задал не очень много, штуки три. В голове их гораздо больше. )
     
    ИгорьК нравится это.