Я не профессиональный программист. С типами лицензий до сих пор не разобрался. Да и язык очень специфичный - SmallTalk. в России я думаю всего человек 10 на нём работают. Но с моуй точки зрения - это самый удобный язык, обеспечивающий максимальную скорость разработки.
"Велосипедированием" часто заставляют заниматься Заказчики, да и Исполнителям это может быть выгодно!
А не подскажете литературы по изучению С в рамках программирования микроконтроллеров? Например пример с blink был нагляден и весьма убедителен.
Статья хорошая. Для меня как раз и полезна. Программированием я так. балуюсь (не профессионал, не давно начал изучать), изредка, подсветочку на RGB светодиодах сделал на атмеге, кодовый замочек с одной кнопочкой , ... для разовых, простых проектов среды ардуины вполне хватает, да и когда ресурсов МК в избытке для поставленной задачи. Но совсем зеленым советую найти даташит к МК (если не знаете английский, то найдите на русском, пусть к atmege 8), почитайте. После прочтения, станет понятно, что на чистом Си выжать из МК можно на порядок больше. Тут и счетчики вам, и прерывания, и таймеры. Но в ардуине я получил работающую прогу с ШИМ где-то за час (и то из-за незнания синтаксиса провозился). В atmelstudio же я несколько вечеров по часа 1-2 внмательно читая даташит на микруху и хелпы к СИ только разобрался более менее как просто настроить порты и счетчики чтобы получить работающий выход ШИМ. Но если работать профессионально. то наверно все-таки не arduino.ide , а для поделок arduino.ide покатит.
Rustem, в Arduino IDE на самом деле используется тот же самый С++, просто немного изменена структура программы для простоты и подлючен базовый набор библиотек, так что там тоже можно обращаться напрямую к регистрам и настраивать любую периферию как угодно.
Вот самый правильный ответ, пожалуй. Это и есть Pure C, C++ с кучей дополнительных инструментов (подключаемых). Компилятор у него один в один как в Arduino IDE с опцией -Os.
Вот честно несколько раз пытался у ним поработать. Так и не смог заставить себя его полюбить. Единственное ради чего стоит держать это подсказки по разным настройкам. Да и то спорно. Может быть я не правильно его юзаю.
Новые вариации старых холиваров, на тему "что лучше C или ASM". А я видел человека, который мог сразу в машинных кодах с ЭВМ общаться через терминал. Правда память тогда была маленькая, а машины БОЛЬШИЕ. Мир все время идет по пути усложнения, уже нет времени паять схемы детекторных приемников, транзисторных приемников, даже простейшей логики. Сразу стартуют с контроллеров и компьютеров. И это оправдано, ведь время - самый ценный ресурс. Так что, каждый в зависимости от опыта входит в эту область на каком то уровне, а затем от задач и от желания уже думает куда ему двигаться вверх или вниз и выбирает свою нишу и приоритеты. А на пороге уже новые технологии. Время то не ждет, пока все изучишь. p.s. А по теме. Сейчас для большинства проектов хватает "стандартной комплектации". Иногда проще и быстрей взять контроллер помощней, чем изучать все изыски оптимизации. Тем более, думаю, не за горами переход на другую платформу. Главное научиться учиться, а информация - это расходный материал.
Для начала неплохо бы некоторым товарищам обрести понимание, что среда разработки (Arduino IDE, Atmel Studio, CodeVisionAVR и т.д.), стандартная библиотека (libc, Wiring), язык программирования (C/C++), его компилятор и весь остальной тулчейн (GCC, SDCC, ...) это разные сущности, которые частично связаны, но могут в разных комплектах меняться независимо.
Там еще много уровней сущностей. Имелось в виду в голове. Знание принципов освобождает от знания мелочей.
CodeVizion на каком то другом ядре. Там, например, легально PORTB.2 = ..., чего GCC не понимает. Ну и всякое другое типа delay_ms() вместо _delay_ms().
Ну, там свой компилятор, который понимает только C, но не C++, и не совсем понятно, какому стандарту языка он соответствует. Видимо, никакому. Про доступ к битам не написано даже в документации. Там своя базовая библиотека, из-за этого "delay_ms()".
Хорошая и полезная статья!Если честно,то никакой разницы межу CodeBloks и Arduino не заметил)))Хотя,первая понравилась сразу )))Должны быть обе та ,что попроще для быстрого наброска макета,а та,что с МК общается через регистры для критических участков кода...Но есть свое мнение,что даже работая на asm вряд ли известны все команды и все регистры,разработчики всегда чего-то недоговаривают..нужна своя платформа на базе своего МК и со своей системой команд в первом приближении совместимы с AVR или хотя бы с ардуиной...Можно и по-другому ,-сделать автоматический оптимизатор кода для то й же ардуины..Т.Е. программа пишется на высокоуровневом ардуино-языке без привязки к железу,а потом под конкретную плату все это компилируется ...В любом случае статья полезная и интересная,особенно не программистам))))