Хотите освоить язык программирования Си для микроконтроллеров на профессиональном уровне?

За 24 часа вы узнаете столько информации о программировании микроконтроллеров на языке Си, сколько другие узнают за несколько лет или не узнают никогда.

И все это по цене пары книг!

Есть такой анекдот...

 

Студент сдает экзамен по электротехнике. Отвечает прекрасно, поражает преподавателя своими знаниями, тот ставит ему "отлично", а потом спрашивает:

- Слушайте, неужели вы действительно все так блестяще понимаете?

- Да не все, - мнётся студент. - Есть у меня один неясный вопрос. Ведь переменный ток - он вот такой. (Студент чертит рукой в воздухе синусоиду) Так как же он по прямым проводам проходит?

Так как же переменный ток по прямым проводам проходит?

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

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

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

Как раз у таких программистов получаются "глючные" программы, которые "летят ко всем чертям", если пользователь выполнит какую-то нестандартную операцию.

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

441 ошибка и 1218 предупреждений

А сколько логических ошибок, которые не показывает компилятор?

Последствия "кривых" программ

 Не страшно, если неопытные программисты создают сайты, пишут прикладные программы для ПК. Ошибки там легко поправимы и почти безобидны.

По-крайней мере, компьютер от ошибок не взорвется и данные просто так безвозвратно не потеряются.

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

Да и потраченного времени на отладку программы не жалко. Когда только учишься, то можно просидеть над программой несколько дней или даже недель.

Когда последствия не такие безобидные...

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

В общем-то нестрашно, если программа для мигания светодиодов написана некорректно. Что может случиться?

Самое страшное – это светодиоды будут периодически сбиваться с нужного ритма или перестанут мигать, например, спустя 65536 циклов.

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

Очень неприятно, когда долго отлаживаете программу вашего электронного устройства, а ошибка все равно не уходит

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

Очень обидно и неприятно бывает, когда какое-нибудь коммерческое устройство уже сделано, протестировано, установлено на объект, деньги получены,  а через какое-то время выясняется, что оно начинает «глючить» при определенных условиях.

И вот Вы опять должны снимать это устройство нести его обратно и снова пытаться понять что же с ним случилось.

И конечно же, по закону подлости, когда устройств находится у Вас, оно сразу начинает работать так как надо, но как только относите заказчику, то через какое-то время оно опять начинает работать со сбоями.

И вроде бы понимаете, что дело исключительно в программе, но не можете понять, что именно не так.

Знакомо?!

Все это как раз возникает из-за недостатка знаний о том как именно работает программа на микроконтроллере.

Некорректная подача управляющего напряженияэлемент сгорел.

Задержка или опоздание управляющего напряжения на несколько миллисекундэлемент сгорел.

Ошибка в циклограмме работы – и элемент опять сгорел.

Обидно!  Ведь подобные силовые компоненты совсем не дешевые!

А если управление осуществляется мощным полевым транзистором или другими силовыми элементами?

А если происходит управление нагрузкой в сети 220 В или исполнительным механизмом в станке?

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

А с кого будут спрашивать?

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

И никого не будет интересоваться почему устройство работает неправильно.

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

Вот несколько реальных примеров из жизни,

когда ошибки программистов оборачивалась реальными и очень ощутимыми потерями

В 1996 году при запуске ракеты-носителя Ariane 5, которая должна была вывести на орбиту несколько спутников, на 39 секунде полета произошел взрыв.

Причиной аварии стала программная ошибка связанная с преобразованием 64-битного значения с плавающей точкой в 16 битное целое значение со знаком.

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

В общей сложности, ущерб от аварии составил 8,5 миллиардов долларов.

С 1985 по 1987 год погибли 3 пациента и еще 3 остались инвалидами после процедуры с использованием медицинского аппарата лучевой терапии "Therac-25". Как выяснилось позже, произошло это из за неграмотно написанной программы, которая содержала сразу несколько серьезных ошибок и целый ряд потенциально возможных ошибок.

Во время операции "Буря в пустыне", ракеты “Пэтриот”, использовавшиеся для перехвата в воздухе иракских ракет, периодически проходили мимо цели.

Одна из пропущенных иракских ракет привела к гибели 28 американских солдат.

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

15 января 1990 года произошло самое масштабное падение телефонной сети компании AT&T.

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

15 января 1990, когда один из коммутатор в Нью-Йорке перезагрузился, он подал тот самый специфичный сигнал, который запустил "цепную реакцию" перезагрузок. Совсем скоро 114 соседних коммутаторов непрерывно перезагружались каждые 6 секунд, а 60 тыс. человек остались без междугородней связи на 9 часов, пока инженеры устанавливали на коммутаторы предыдущую версию прошивки.

И это далеко не единичные случаи...

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

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

Операторы аттракциона быстро среагировали, аварийно остановили аттракцион и спустили людей вниз. Посетители аттракциона отделались царапинами.

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

Думаете с Вами такое случится не может?

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

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

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

От программной ошибки до аварии или пожара один шаг

Как же избежать таких ситуаций? Самый правильный способ - это учиться.

Очень хорошо учится по книгам

Книги мне нравятся тем что авторы очень серьезно подходят к составлению книг, так как хорошо понимают, что:

Во-первых, книги будут продаваться на очень широкую аудиторию (на русском языке книги реализуются почти во всех странах СНГ).  Следовательно, на кону стоит репутация автора.

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

Репутация и доходы - это то что заставляет авторов книг очень ответственно относится к своим трудам.

Но, к сожалению, хороших книг по программированию микроконтроллеров очень мало.

А хороших книг по программированию микроконтроллеров на языке С вообще нет.

Точнее есть, но исключительно на английском языке, которые можно заказать с зарубежного магазина amazon по средней цене 150..200$. Это около (8000..11000 рублей)

Из всех известных мне книг на русском ни одна книга в полной мере не раскрывает основы языка С применительно к программированию микроконтроллеров.

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

Обратите внимание на цены.

Однако, изучить язык Си для программирования микроконтроллеров или Arduino по этим книгам вам вряд ли удастся, так как в книгах рассматривается программирование исключительно под ПК с операционной системой.

Про такое важное и привычное понятие как прерывания, в этих книгах вы не найдете ни слова

Учится можно по видео с YOUTUBE

Там тоже есть обучающие видео по программированию микроконтроллеров на языке С.

Этот инструмент для изучения нравится мне больше чем книги, так как с помощью видео информация усваивается на порядок лучше, чем по книгам.

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

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

Для авторов на youtub'e более важным является количество просмотров, а не качество материала. Поэтому, они не подходят к составлению материала также ответственно, как это делают авторы книг. К тому же, авторы на youtub'e не несут никакой ответственности за качество материала. Во многих случаях, бесплатное видео - это почти тоже самое что развлекательное видео. Хотя, редкие исключения существуют.

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

Еще учится можно по статьям на сайтах

Сейчас появилось уже не мало сайтов посвященных программированию микроконтроллеров на самых разных языках.

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

Но, текстовая информация хуже воспринимается, чем видео. Да и отношение к изложенному материалу у авторов статей на сайте все еще не такое серьезное, как у авторов книг.

Есть еще один вариант обучения - платный дистанционный

Дистанционное образование сегодня все больше набирает популярность, так как экономит время (никуда ходить не надо) и деньги (гораздо дешевле чем аудиторные занятия).

Чаще всего дистанционный вариант существует в виде платных видеокурсов с возможностью обратиться к автору за консультацией.

 

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

Удаленно преподаются самые разные языки программирования: Python, Java, C# и т.д.

 

И это не удивительно, так как дистанционное обучение по видеокурсам имеет преимущество сразу всех трех видов обучения:

Видео позволяет на порядок повысить уровень усвоения информации по сравнению с книгами

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

Благодаря интернету появляется уникальная возможность напрямую обратиться к автору видеокурса по e-mail за комментариями или пояснениями, если что-то непонятно.

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

Благодаря видеокурсам появилась возможность изучить язык С для программирования микроконтроллеров на профессиональном уровне.

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

И все это по цене пары книг.

Авторский обучающий курс

"Программирование микроконтроллеров на языке С"

Обучение профессиональному программированию микроконтроллеров на языке С

Этот видеокурс специально создан для тех, кто хочет освоить язык программирования С для микроконтроллеров, но устал собирать информацию по крупицам.

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

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

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

В чем преимущество видеокурса над книгами?

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

Сколько нужно иллюстраций что бы наиболее подробно объяснить тему?

Одна? Две? Десять?

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

А если использовать видео? Тогда совсем другое дело. В 1..2 минутах можно уместить все что помещается на 10..20 страницах книги.

А для автора еще одно преимущество видео над книгами - это простота издания и простота корректировки опечаток.

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

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

Единственное преимущество печатной книги - это некоторая престижность выпуска печатного варианта.

В чем преимущество видеокурсов над youtube и сайтами?

Лучше всего это поясняет диаграмма от Колина Хармана:

Все что качественно - стоит денег

Кому подойдёт курс "Программирование микроконтроллеров на языке С" ?

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

Не подойдет, если вы плохо разбираетесь в электронике или совсем не понимаете что такое микроконтроллер.

Подойдет, вы у вас есть желание учится.

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

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

Не подойдет, если вы не готовы серьезно заниматься.

Ответы на частые вопросы Не нашли ответ на свой вопрос?

Отправьте свой вопрос по e-mail внизу страницы. Или задайте через форму обратной связи на правой стороне страницы.

По вопросам заказа и оплаты курса вы можете обращаться

на e-mail: support@micro-controller.ru или через форму обратной связи (справа на странице)

Партнерская программа

Данное учебное пособие предназначено исключительно для частного пользования. Учебное пособие запрещено к приобретению в коллективное пользование.

Любое незаконное использование учебного пособия (копирование, обмен, публичное вещание, несанкционированное распространение и прочее) запрещено и преследуется согласно действующему законодательству!