Программирование микроконтроллеров для начинающих: легко и доступно. Программирование микроконтроллеров на языке С Аппаратные различия разных микроконтроллеров

Я категорически против такого подхода. Обычно это все заканчивается - либо ничем, либо забитые форумы с мольбами помочь. Даже если кому то помогают, то в 90% он больше никогда не всплывет на сайтах по электронике. В остальных 10% он так и продолжает заливать форумы мольбами, его будут сначала пинать, затем поливать грязью. Из этих 10% отсеивается еще 9%. Далее два варианта: либо таки до глупой головы доходит и все же происходит goto к началу, либо в особо запущенных вариантах, его удел копировать чужие конструкции, без единой мысли о том как это работает. Из последних зачастую рождаются ардуинщики.

Путь с нуля на мой взгляд заключается в изучении периферии и особенностей, если это микроконтроллер. Правильнее сначала разобраться с тем как дрыгать ножками, потом с таймерами, затем интерфейсами. И только тогда пытаться поднимать свой FAT. Да это не быстро, да это потребует времени и усилий, но практика показывает, как бы вы не пытались сократить этот путь, все равно всплывут проблемы, которые придется решать и время вы потратите куда больше, не имея этой базы.

Только не нужно путать теплое и мягкое. Первое - из всех правил есть исключения, лично видел людей, которые в руках раньше не держали микроконтроллеров, но за крайне короткий срок смогли обскакать бывалых опытных радиолюбителей, их в расчет не берем. Второе - мне попадались личности, которые начинали с копирования схем и сходу разбирались, но скорее это тоже исключение из правил. Третье - и среди ардуинщиков попадаются опытные программисты, это ведь всего навсего платформа, но и это скорее исключение.

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

2. Перед решением задачи, дробите ее до абсурда вплоть до «припаять резистор», это помогает, проверено. Мелкие задачи решать куда проще. Когда большая задача разбита на кучу мелких действий, то все что остается - это выполнить их. Могу привести еще один годный совет, хоть он вам и покажется бредовым - заведите блокнотик и пишите в него все что собираетесь сделать. Вы думаете, итак запомню, но нет. Допустим сегодня у меня хорошее настроение и думаю о том, как собрать плату. Запиши план действий: сходить купить резистор, подготовить провода, сделать крепление дисплея. Потом все забудешь, откроешь блокнотик и смотришь - ага сегодня настроение попилить и построгать, сделаю крепление. Или собираешь ты плату и уже осталось допаять последний компонент, но не тут то было резисторы кончились, вот записал бы перед тем как паять, то вспомнил.

3. Не пользуйтесь кодогенераторами, нестандартными фичами и прочими упрощалками, хотя бы на первых этапах. Могу привести свой личный пример. Во времена активного использования AVR я пользовался кодогеном CAVR. Меня он полностью устраивал, хотя все говорили, что он кака. Звоночки звенели постоянно, были проблемы с библиотеками, с синтаксисом, с портированием, но было тяжело от этого отказаться. Я не разбирался как это работает, просто знал где и как поставить галочки.

Кол в мой гроб был вбит с появлением STM32, нужно было обязательно переползать на них, вот тогда то и появились проблемы. Проблемы мягко сказано, фактически мне пришлось осваивать микроконтроллеры и язык Си с нуля. Больше я не повторял прошлых ошибок. Надо сказать это уже пригодилось и не один раз. С тех пор мне довелось поработать с другими платформами и никаких затруднений не испытываю, подход оправдывает себя.

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

4. Изучайте язык Си. Эх, как же часто я слышу, как начинающие радиолюбители хвалятся, что хорошо знают сишку. Для меня это стало кормом, всегда люблю проконсультироваться у таких собеседников. Обычно сразу выясняется, что язык они совершенно не знают. Могу сказать, что не смотря на кажущуюся простоту, людей которые действительно хорошо бы его знали, встречал не так много. В основном все его знают на столько, на сколько требуется для решения задач.

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

Очень многие начинающие брезгуют изучением языка, поэтому если вы не будете как все, то сразу станете на две ступени выше остальных новичков. Так же не никакой разницы, где изучать язык. На мой взгляд, микроконтроллер для этого не очень подходит. Гораздо проще поставить какую нибудь Visual studio или Qt Creator и порешать задачки в командной строке.

Хорошим подспорьем будет также изучение всяких тестов по языку, которые дают при собеседованиях. Если порыться то можно много нового узнать.

5. Изучение ассемблера? Бояться его не нужно, равно как и боготворить. Не нужно думать, что умея написать программу на ассемблере, вы сразу станете гуру микроконтроллеров, почему то это частое заблуждение. В первую очередь это инструмент. Даже если вы не планируете использовать его, то все равно я бы настоятельно рекомендовал написать хотя бы пару программ. Это сильно упростит понимание работы микроконтроллера и внутреннего устройства программ.

6. Читайте даташит. Многие разработчики, пренебрегают этим. Изучая даташит вы будете на две ступени выше тех разработчиков. Делать это крайне полезно, во первых это первоисточник, какие бы сайты вы не читали, в большинстве случаев они повторяют информацию из даташита, зачастую с ошибками и недосказанностями. Кроме того, там может находиться информация, о которой вы не задумываетесь сейчас, но которая может пригодиться в будущем. Может статься так, что вылезет какая то ошибка и вы вспомните что да, в даташите об этом было сказано. Если ваша цель стать хорошим разработчиком, то этого этапа не избежать, читать даташиты придется, чем раньше вы начнете это делать, тем быстрее пойдет рост.

7. Часто народ просит прислать даташит на русском. Даташит - это то, что должно восприниматься как истина, самая верная информация. Даже там не исключены ошибки. Если к этому добавятся ошибки переводчика, он ведь тоже человек, может даже не нарочно, просто опечататься. Либо у него свое видение, может что-то упустить, на его взгляд не важное, но возможно крайне важное для вас. Особенно смешной становится ситуация, когда нужно найти документацию на не сильно популярные компоненты.

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

Мною был проведен эксперимент: в наличии был студент, даташит и гугл переводчик. Эксперимент №1: студенту вручен даташит и дано задание самостоятельно найти нужные значения, результат - «да как я смогу», «да я не знаю английский», «я ничего не нашел/я не понял» типичные фразы, говорящие о том, что он даже не пытался. Эксперимент №2: тому же студенту, вручен все тот же даташит и тоже задание, с той разницей, что я сел рядом. Результат - через 5 минут он сам нашел все нужные значения, абсолютно без моего участия, без знания английского.

8. Изобретайте велосипед. Например, изучаете какую то новую штуку, допустим транзистор, дядька Хоровиц со страниц своей книги авторитетно заявляет, что транзистор усиливает, всегда говорите - НЕ ВЕРЮ. Берем в руки транзистор включаем его в схему и убеждаемся что это действительно так. Есть целый пласт проблем и тонкостей, которые не описываются в книгах. Прочувствовать их можно только, когда возьмешь в руки и попробуешь собрать. При этом получаем кучу попутных знаний, узнаем тонкости. Кроме того, любая теория без практики забудется намного быстрее.

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

Также важно выходить за рамки дозволенного, подать побольше/поменьше напряжение, делать больше/меньше резисторы и следить за изменениями в работе схемы. В мозгу все это остается и оно пригодится в будущем. Да это чревато расходом компонентов, но я считаю это неизбежным. Первое время я сидел и палил все подряд, но теперь перед тем как поставить тот или иной номинал, всегда вспоминаю те веселые времена и последствия того, если поставить неверный номинал.

9. А как бы я сделал это, если бы находился на месте разработчиков? Могу ли я сделать лучше? Каждый раз задавайте себе эти вопросы, это очень хорошо помогает продвигаться в обучении. Например, изучите интерфейсы 1wire, i2c, spi, uart, а потом подумайте чем они отличаются, можно ли было сделать лучше, это поможет осознать почему все именно так, а не иначе. Так же вы будете осознавать, когда и какой лучше применить.

10. Не ограничивайтесь в технологиях. Важно что этот совет имеет очень тонкую грань. Был этап в жизни, когда из каждой подворотни доносилось «надо бы знать ПЛИС», «а вот на ПЛИС то можно сделать». Формально у меня не было целей изучать ПЛИСины, но и пройти мимо было никак нельзя. Этому вопросу было выделено немного времени на ознакомление. Время не прошло зря, у меня был целый ряд вопросов, касаемых внутреннего устройства микроконтроллеров, именно после общения с плисинами я получил ответы на них. Подобных примеров много, все знания, которые я приобретал в том или ином виде, рано или поздно пригодились. У меня нет ни единого бесполезного примера.

Но как было сказано, вопрос технологий имеет тонкую грань. Не нужно хвататься за все подряд. В электронике много направлений. Может вам нравится аналог, может цифра, может вы специалист по источникам питания. Если не понятно, то попробуйте себя везде, но практика показывает, что вначале лучше сконцентрироваться на чем то конкретном. Даже если нужно жать в нескольких направлениях, то лучше делать это ступеньками, сначала продавить что то одно.

11. Если спросить начинающего радиолюбителя, что ему больше нравится программирование или схемотехника, то с вероятностью 99% ответ будет программирование. При этом большую часть времени эти программисты тратят на изготовление плат ЛУТом/фоторезистом. Причины в общем то понятны, но довольно часто это переходит в некий маразм, который состоит в изготовлении плат ради изготовления плат.

В интернетах практически единственный трушный путь к программированию это стать джедаем изготовления печатных плат. Я тоже прошел через этот путь, но каждый раз задаю себе вопрос зачем? С тех пор, как я приобрел себе пару плат, на все случаи жизни, каждый раз думаю о том, что мог бы спокойно прожить все это время без самодельных плат. Мой совет, если есть хоть капля сомнений, то лучше не заморачиваться и взять готовую отладочную плату, а время и средства лучше бы потратить на программирование.

12. Следующий совет, особенно болезненный, мне очень не хочется его обсуждать, но надо. Часто мне пишут, мол ххх руб за ууу дорого, где бы подешевле достать. Вроде бы обычный вопрос, но обычно я сразу напрягаюсь от него, так как зачастую он переходит в бесконечные жалобы на отсутствие денег. У меня всегда возникает вопрос: почему бы не оторвать пятую точку и не пойти работать? Хоть в тот же макдак, хоть на стройку, потерпеть месяц, зато потом можно приобрести парочку плат, которых хватит на ближайший год. Да я знаю, что маленьких городах и селах сложно найти работу, переезжайте в большой город. Работайте на удаленке, в общем нужно крутиться. Просто жаловаться нет смысла, выход из ситуации есть, кто ищет его тот находит.

13. В ту же копилку внесу очень болезненный вопрос инструмента. Инструмент должен позволять вам максимально быстро разрабатывать устройства. Почему то очень многие разработчики не ценят свое время. Типичный пример, дешевая обжимка для клемм, на которой так любят экономить многие работодатели. Проблема в том, что она даже обжимает не правильно, из-за этого провода вываливаются. Приходится производить кучу дополнительных манипуляций, соответственно тратить время. Но как известно дурак платит трижды, поэтому низкая цена кримпера возрастет во много раз, за счет затрачиваемого времени и плохого качества обжима.

Не говорю что дешевое = плохое, нет - все зависит от ситуации. Вернусь к примеру кримпера, было время когда обжимал чем попало, поэтому часто возникали проблемы. Особенно неприятно, когда заводишь плату и она не работает, после долгих поисков ошибки понимаешь что из-за плохо обжатого проводочка, обидно. С тех пор как появилась нормальная обжимка этих проблем нет. Да внутренняя жаба и квакала, и душилась от ее стоимости, но ни разу не пожалел об этом решении. Все что я хочу сказать, что поработав с нормальным инструментом, совершенно не хочется возвращаться к плохому, даже не хочется обсуждать это. Как показывает практика, лучше не экономить на инструментах, если сомневаетесь - возьмите у кого нибудь потестить, почитайте отзывы, обзоры.

14. Заведите сайт, можно писать на нем, что угодно, просто как записки. Практика показывает, что работодатели все равно его не читают, но сам факт производит большой эффект.

15. Тонкий вопрос: профильное высшее образование, нужно ли оно? Мне известны не единичные случаи, когда люди работали абсолютно без образования и по опыту и знаниям они могли дать прикурить любому дипломированному специалисту. Собственно, у меня нет профильного образования, испытываю ли я от этого дискомфорт? В определенной степени да.

Еще в самом начале, когда микроконтроллеры были для меня хобби, я много помогал с курсовыми и дипломами разных вузов, просто чтобы оценить свой уровень. Могу сказать уверенно, что уровень в целом невысок вне зависимости от имени вуза. Учиться несколько лет, для того чтобы написать такой диплом, совершенно необязательно. Достигнуть этого можно самостоятельно за весьма короткий срок. И все же зачастую бывали моменты, когда студенты знали какой то предмет, который они проходили на 2-3 курсе, а я этого не знал. Хоть все эти знания и компенсировались самообразованием, но все же лучше было бы не тратить на это время.

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

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

Еще один момент это возможности. Зачастую у вузов есть свои возможности - оборудование, может какие то секции, может какие то программы работы за рубежом, этим нужно пользоваться, если есть хоть малейшая возможность. Если в вузе вы не видите перспективы, идите в другой, мир на каком то одном не заканчивается.

Если подытожить то совет таков: если есть хоть малейшая возможность - нужно идти учиться, обязательно по профилю, если есть хоть какие то шансы, то лезть везде, а не отсиживать штаны на задней парте. Заводить знакомства, параллельно дома самому практиковаться, развиваться.

16. Поздно ли начинать программировать в 20, 30, 40, 50 лет? Практика других людей показывает, что возраст вообще не помеха. Многие почему то не учитывают то, что есть целый пласт работы, которую молодые в силу своих амбиций не хотят делать. Поэтому работодатели предпочитают брать тех, кто будет ее тащить. Это ваш шанс зацепиться, а дальше все зависит только от вас.

И последний совет. Многие радиолюбители необщительные, сердитые и раздражительные - считайте это спецификой работы. Излучайте добро и позитив, будьте хорошим человеком.

    Новые покупки Показать еще Скрыть

    10.07.2019: Жизнь на позитиве - убираем самоедство. Жизненная стойкость. Уверенность

    10.07.2019: Заработок от 50 тыс руб на партнерках с 200% гарантией - VIP

    09.07.2019: Заработок от 50 тыс руб на партнерках с 200% гарантией

    09.07.2019: Многомерная медицина. Самодиагностика и самоисцеление [Закрытая]

    09.07.2019: Очистка Рода

    09.07.2019: (Повтор) Очистка рода

    09.07.2019: Высокие вибрации. Для женщин. Закрытая.

    09.07.2019: [Повтор] Чертежи солнечного био-вегетария площадью 64 кв.м. (СБВ-Мини)

    08.07.2019: 10-100-1000 ПЕРЕХОДОВ В ДЕНЬ ИЗ YOUTUBE

    07.07.2019: Изгнание черных сил и исцеление организма

    06.07.2019:

    05.07.2019: Длительное обучение экстрасенсорике (Алексей Похабов)

    25.06.2019: Не покупайте яды в красивой упаковке (Елена Бахтина)

    24.06.2019: Курc по нутрициoлoгии (В. Дадали)

    23.06.2019: Лучший год вашей жизни (Елизавета Бабанова)

    22.06.2019: Нумерология, как профессия. Мы из матрицы. Книга 1

    06.06.2019:

    04.06.2019:

    30.05.2019: [Кукла] [Повтор] Тедди-долл

    28.05.2019: Многомерная медицина. Инфаркт миокарда[Закрытая]

    22.05.2019: Чертежи солнечного био-вегетария площадью 64 кв.м. (СБВ-Мини)

    21.05.2019: Базовый курс по созданию кукол из пластики

    20.05.2019: Стрим арт ретуши

    20.05.2019:

    20.05.2019:

    20.05.2019: 2 миллиона в месяц на продаже студий. (Андрей Сазонов)

    29.04.2019: Эндокринная система - (Сеансы) [Надежда Колесникова]

    29.04.2019: Восстановление почек и мочеиспускательной системы [Надежда Колесникова]

    19.04.2019:

    19.04.2019:

    19.04.2019: Голозёрный Овёс, Расторопша, Технология дезинфекции и проращивания семян. (Фролов Ю.А)

    17.04.2019: [Повтор]Лицензия без проблем

    17.04.2019: Урок по обработке фотографий (Мария Струтинская) 2019

    17.04.2019: Ю.А. Фролов - 4 на 4 от А до Я

    17.04.2019: Фролов Ю.А. Инфопродукт №14 - Семинар - Выживание в экстремальных ситуациях, подготовка, запасы...

    12.04.2019: Суперагент или Весь Метод Александра Санкина в 24-х он-лайн уроках

    05.04.2019: Ни дня без строчки (Вера Арсентьева, Марина Пятилетова)

    04.04.2019: Личный бренд и инстаграм (Анна Ролева, Вероника Юрина)

    04.04.2019: Взлом вовлеченности [Лилия Нилова]

    02.04.2019: Фреймворк Bootstrap 4. Руководство по адаптивной верстке

    30.03.2019: Монтаж в Davinci Resolve: быстрый старт (Дмитрий Ларионов)

    20.03.2019:

    20.03.2019:

    18.03.2019: Мастер - группа: Лингвистика

    18.03.2019: AVITO-BOOM - система заработка на Авито от 3500 руб./день на автомате! (Писаревский Александр)

    18.03.2019:

    26.02.2019: Джеффри Стивенс - семинар по гипнозу на выходных

    14.02.2019:

    01.02.2019: Целебное прикосновение. Институт кинезиологии (Джон Ти, Мэтью Ти)

    27.01.2019: 3 книги Максима Батерева "45 татуировок личности, менеджера, продавана..."

    22.01.2019: Вебинары по СКВИРТУ

    18.01.2019:

    14.01.2019:

    09.01.2019:

    05.01.2019:

    26.12.2018:

    15.12.2018: Stop Простуда: как повысить иммунитет (Маргарита Левченко)

    15.12.2018: Зарабатывай, обучая делать деньги на ставках (Артём Досман)

    Гость, вы попали в клуб Рескладчик. У нас в 10 раз дешевле, чем на Складчике. Теперь вы можете не по 200 руб брать продукт на Складчике, а у нас на Рескладчике всего за 20 руб.

    Скрыть объявление
  1. Нужен организатор Показать еще Скрыть

    06.07.2019: Open Real Estate - Ultimate версия

    06.06.2019: Я хочу БИТЬ! 2.1 + обновления до 2.2 и 2.3

    04.06.2019: Пакет документов для успешной работы детского центра

    20.05.2019: Видеокурс для самостоятельного обучения удалению вмятин от Ultra Dent Tools на русском языке (3 DVD)

    20.05.2019: Видеокурс для самостоятельного обучения удалению вмятин от...

    19.04.2019: [повтор] 3бет-поты. Шлифуем знания

    19.04.2019: Покер. Девятый пак с фристайла

    17.04.2019: [Повтор]Лицензия без проблем

    20.03.2019: Клуб трех учителей - 38 курсов и МК (Александр Иваницкий) (Алена Рябченко) (2016)

    20.03.2019: Интернет маркетинг для клиник - 16 книг

    18.03.2019: [Повтор] Два курса по методике В.Ф.Шаталова для начальной школы

    14.02.2019: Телесный тренинг (Наталия Ладини)

    22.01.2019: Вебинары по СКВИРТУ

    18.01.2019: Удобная форма II

    14.01.2019: [Повтор] Все тренинги и упражнения Тренерская.РУ

    09.01.2019: [Специалист] M20345 - 1: Администрирование Exchange Server 2016

    05.01.2019: Центр прикладной психологии - Целеустроение

    26.12.2018: [Новая] Методические пособия к 1 курсу обучения Академии прикладной кинезиологии Васильевой Л.Ф.

    11.12.2018: [Специалист] Профессиональный дизайн в CorelDRAW

    27.11.2018: Уроки Wilcom EmbroideryStudio e1.5

    27.11.2018: Ограничивающие убеждения

    07.11.2018: See More On..(Вторая, «солнечная» часть симоронской программы)

    07.11.2018: Бизнес как Актив (приобретение готового бизнеса без вложений) Наталья Закхайм ЛиКPro

    07.11.2018: 2-я ступень ШК (new)

    28.10.2018: [Технология] Гибкий камень

    21.10.2018: Система привлечения массового потока клиентов в строительно-ремонтный сектор IndexHunter

    21.10.2018: Алекс Lesly все Книги

    16.10.2018: Шьем развивающие игрушки своими руками

    16.10.2018: [Повтор] Универсальный курс «Открытие» школы образных решений idea-class

    16.10.2018: Художественное оформление бровей (Наталья Шик)

    26.09.2018: Калькулятор расчета стоимости на сайт. Расширение для Web Builder

    15.09.2018: Секреты успешного общения для достижения счастливой жизни (Юлия Ланске)

    10.09.2018: Кооперация – для организаторов ПО (ПК)

    10.09.2018: [Повтор] Развитие природных способностей ребенка за 10 минут в день

    03.09.2018: Активации Трёх Генералов ЦМДЦ

    25.08.2018: Соматипология. Чтение людей по телосложению, определение своих сильных сторон по телосложению.

    25.08.2018: Комплект из 5ти курсов за пол цены. Р. Абдуллин

    09.08.2018: Скрипт автоматического обменного пункта Premium Exchanger

    02.08.2018: Курс трансформации лица Бахтиной Елены

    02.08.2018: Шамоян - Я учусь любить себя

    02.08.2018: Шаблон Bonono

    27.07.2018: Архетипическое таро

    24.07.2018: Мужчина нарасхват (Егор Шереметьев)

    24.07.2018: Meтафopичecкиe accoциaтивныe кapты - колода Habitat

    21.07.2018: Магрибская магия

    10.07.2018: «"Турбо Cash Flow по Кийосаки" - СТАНДАРТ»

    01.07.2018: Английский вместе с Хрюшей и... (5 DVD)

    23.06.2018: 8500+ исходников для Фотошопа

    17.06.2018: Люди и Боги (С. Савченко)

    14.06.2018: Сайт продажи игровой валюты

    09.06.2018: Взрослые мы и наши родители

    27.05.2018: Полная серия мастер-классов по пошиву игрушки

    27.05.2018: Тальпис и Мошинская: обучение работе с метафорическими ассоциативными картами

    16.05.2018: [Повтор] Прибыльный бетон, бизнес за 1 000$

    13.05.2018: Пошаговое руководство как сделать кухню самому и бизнес на кухнях.

    02.05.2018: Базовый обучающий курс Дарьи Абахтимовой “ЗА ГРАНЬЮ СОЗНАНИЯ” 1.0

    27.04.2018: easyReservations Premium - пожалуй лучший плагин бронирования

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

Ход обучения :

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

Рассматриваемые темы:

  1. Введение в тему программирование микроконтроллеров
  2. Тактовые генераторы
  3. Порты ввода вывода
  4. Прерывания
  5. Таймеры
  6. Модуль захвата
  7. Модуль сравнения
  8. UART
  9. Работа с графическим дисплеем

Аналогичных курсов практически единицы и все они в формате off-line. С преподавателем вы будет проходить индивидуальное обучение по авторской программе.
Благодаря проведению занятия on-line вы будете постоянно держать обратную связь с преподавателем, который будет объяснять, давать советы, а также давать рекомендации по оптимизации программ, советы по использованию электронных компонентов. В дальнейшем не исключена совместная работа над реальными проектами в области электроники.

Для начала занятий по данному курсу необходимо, чтобы ученик знал базовые понятия языка программирования С и умел их применять.
Если ученик не знаком с языком С, то сперва необходимо пройти курс: «Азы программирования на языке С»(можно у этого же преподавателя, а практически это ещё и лучше), а уж после успешного изучения азов, можно приступать к изучению программирования микроконтроллеров.
Если у ученика имеются знания языка С, то преподаватель обязательно эти знания проверит и если необходимо ещё разобраться в некоторых темах, то порекомендует какие темы нужно повторить.

Подробности Создано 07.07.2011 13:24

Совсем недавно, основным языком программирования микроконтроллеров был ассемблер. Программист, используя ассемблер, имел полный контроль над всеми внутренними ресурсами процессора. Готовые программы отличались компактностью и быстродействием. Рост объемов памяти, тактовой частоты и периферии в микроконтроллерах, постоянно расширял область применения этих устройств. При этом усложнялась задача разработки программного обеспечения. Например, логические или целочисленные арифметические функции реализуются достаточно просто. В противоположность им, вычисления с плавающей запятой требуют специальных алгоритмов, занимающих большой объем памяти. То же касается и многих современных интерфейсов, присутствующих в микроконтроллерах. Благодаря этим и многим другим причинам, возникла необходимость использования языков высокого уровня, для разработки управляющих программ микроконтроллеров.

Преимущества и недостатки языка высокого уровня.

Главными преимуществами языков высокого уровня принято считать более понятный человеку код и возможность переноса программ с одного процессора на другой. Хотя последнее утверждение очень спорно, тем не менее, при выполнении определенных условий перенос программы все же возможен. Также сильно упрощается реализация многих стандартных функций и появляется аппаратная независимость языка. Последние обстоятельства, фактически и придают такую высокую привлекательность языкам высокого уровня.

При всех достоинствах у языков высокого уровня имеются и недостатки. Самый серьезный из них определяется увеличенным объемом машинного кода, по сравнения с реализацией того же алгоритма на ассемблере. Фактически, больший объем является платой за универсальность и простоту разработки программ. Несколько снижают остроту проблемы рост памяти микроконтроллеров и увеличение их быстродействия. Другие, традиционно называемые недостатки, такие как высокая стоимость компиляторов и сложность отладки, также постепенно нивелируются, в виду развития техники.

Почему С?

На сегодняшний день имеется множество языков программирования высокого уровня, отличающихся своим синтаксисом и возможностями. Как правило, выбор того или иного языка основан на его возможностях при решении тех или иных задач. Для работы с микроконтроллерами сегодня адаптировано множество традиционных языков программирования и их вариантов. Тем не менее основным языком профессиональной разработки является С или С++. Связано это со многими особенностями данных языков, а не только с популярностью и распространенностью компиляторов.

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

Для кого этот курс?
Прежде всего, я создавал его для начинающих, для тех, кто уже знаком с основами электроники и программирования, кто знает базовые электронные компоненты, собирает простые схемы, умеет держать паяльник и желает перейти на качественно новый уровень, но постоянно откладывает этот переход из-за сложностей в освоении нового материала.
Курс замечательно подойдет и тем, кто только недавно предпринял первые попытки изучить программирование микроконтроллеров, но уже готов все бросить от того, что у него ничего не работает или работает, но не так как ему нужно (знакомо?!).
Курс будет полезен и тем, кто уже собирает простенькие (а может и не очень) схемы на микроконтроллерах, но плохо понимает суть того как микроконтроллер работает и как взаимодействует с внешними устройствами.

Что Вы узнаете, изучив мой курс?
Прежде всего, после изучения курса у Вас появиться четкое понимание, как работают микроконтроллеры на самом низком уровне, на уровне машинных команд, на уровне отдельных сигналов на выводах . А это очень многого стоит в наше время, когда программисты хоть и владеют разными языками программирования, но плохо себе представляют, какие процессы скрываются за командами того языка на котором они пишут свои программы.
Вы узнаете, как микроконтроллеры взаимодействуют с различными периферийными устройствами и электронными компонентами.
Научитесь грамотно создавать принципиальные схемы и грамотно проектировать печатные платы для своих устройств.
Познакомитесь с популярными протоколами обмена: RS232, UART, I2C, SPI, 1-WIRE, Манчестерский код, кодирование без возврата к нулю.
И обращаю внимание, что почти все протоколы будут реализованы программно , то есть в программе будет прописано, в какой момент времени какой уровень сигнала необходимо установить на выводах микроконтроллера, что бы передать либо логическую единицу, либо логический ноль.
Благодаря программной реализации протоколов, у Вас появиться очень четкое понимание того, как организованы протоколы обмена данными на самом низком уровне и по какой логике происходит построение протоколов обмена!
Более того, Вам вполне по силам будет создать свой собственный протокол обмена!
Вы научитесь использовать различные средства отладки и программирования: от программы виртуального моделирования электронных схем до логического анализатора. Без этих средств сегодня не обходиться ни один серьезный разработчик.
Для того, что бы лучше понимать работу микроконтроллера, я научу Вас программировать на самом низкоуровневом языке – наAssembler"е . Почему на ассемблере, а не на Си? Потому что Ассемблер, в отличие от более высокоуровнего языка Си, дает намного более глубокое понимание работы микроконтроллера . Изучение языка ассемблера дает программисту одно очень важное преимущество - он глубже начинает понимать принцип работы программ, написанных на любых других языках .
На этом языке мы вместе напишем множество программ, и разберем работу программных библиотек для работы с различными микросхемами и модулями, а так же изучим популярные протоколы обмена.
И обращаю ваше внимание, что все программы и программные библиотеки, которые будут встречаться в этом курсе, написаны мной лично. Подобных библиотек Вы не найдете ни в интернете, ни в книгах!
Но самое главное, что Вы приобретете - это бесценный практический опыт! Потому что все что мы будем изучать, мы ТУТ ЖЕ ПОСЛЕ ИЗУЧЕНИЯ, БУДЕМ ПРОДЕЛЫВАТЬ НА ПРАКТИКЕ!

А какие преимущества у моего обучающего курса?
Во первых, благодаря видео урокам, Вы будете отслеживать каждое мое действие, которое я буду сопровождать подробными комментариями, и Вам не составит труда все проделанное повторить уже самостоятельно. Эффективность обучения по видео урокам НА ПОРЯДОК превышает все другие формы обучения! Как будто, рядом с Вами сидит преподаватель и разъясняет, почему он делает все так, а не иначе.
Во-вторых, во всех примерах я использую только современные, но легкодоступные электронные компоненты и модули. Так что, возможно, Вы откроете для себя новые функциональные компоненты!
В-третьих, материал в курсе по большей части ориентирован на практику программирования микроконтроллеров. То есть, почти вся теория в обязательном порядке будет закреплена на практике. А как известно, самый лучший способ понять теорию - это применить ее на практике.
А в-четвертых, такого объема информации на одном диске вы не найдете больше нигде. Здесь есть почти ВСЕ , что бы успешно не только начать осваивать программирование микроконтроллеров, но и значительно дальше других продвинуться в понимании того, как работает вся современная электроника.