Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 14.06.2020
Сообщений: 5
1

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

14.06.2020, 10:25. Просмотров 940. Ответов 33
Метки нет (Все метки)

Добрый день уважаемые участники форума! Подскажите, пожалуйста, где можно скачать хорошие видеокурсы по программированию микроконтроллеров на языке С доступные для понимания начинающих свой путь в этой необъятной области. Быть может кто-то подскажет раздачу на курсы по программированию микроконтроллеров на языке С Селиванова Максима? Спасибо за помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2020, 10:25
Ответы с готовыми решениями:

Программирование микроконтроллеров
Работаю в ImageCraft IDE for AVR. Хочу написать программу, которая бы считала функцию, не понимаю в...

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

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

Программирование микроконтроллеров
где почитать?

33
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
14.06.2020, 15:12 2
Цитата Сообщение от ssvchsl Посмотреть сообщение
хорошие видеокурсы по программированию микроконтроллеров на языке С
Для сферического микроконтроллера находящегося в вакууме?
Видео не самый лучший способ обучения.
1
2513 / 1558 / 335
Регистрация: 09.09.2017
Сообщений: 6,293
14.06.2020, 19:19 3
Цитата Сообщение от ssvchsl Посмотреть сообщение
Подскажите, пожалуйста, где можно скачать хорошие видеокурсы по программированию микроконтроллеров
Хороших видеокурсов по программированию не бывает в принципе. Это все равно что учиться боевым искусствам по аниме.
Если действительно хотите освоить контроллеры, можете начать с цикла статей Di-Halt'а. Лично я начинал с Ревича, но не буду утверждать что это лучший способ.
Ну и согласен с locm: определитесь какие именно контроллеры хотите освоить. Если каких-либо предпочтений нет, можно начать с Arduino. Главное, не пользуйтесь тамошней средой, а то высок риск никогда не освоить контроллеры и остаться ардуинщиком. А вот сама платка неплоха.
1
ValeryS
14.06.2020, 21:43
  #4

Не по теме:

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ну и согласен с locm:
вот это да!
оппоненты наконец то согласились друг с другом
Респект и уважуха

0
Rius
15.06.2020, 06:50
  #5

Не по теме:

Какая ирония... Рекомендовать на киберфоруме ресурс, пользователи и администраторы (включая упомянутого) которого считают киберфорум и его участников ворами и фашистами...

0
0 / 0 / 0
Регистрация: 14.06.2020
Сообщений: 5
15.06.2020, 15:43  [ТС] 6
Спасибо за помощь. Решил начать освоение этого непростого направления, работая с микроконтроллерами AVR. Раз видеокурсы или уроки - это путь дилетантов - со всей ответственностью готов прислушаться к вашим советам и с головой погрузиться в букинистику. Подскажите, пожалуйста, доступную для понимания не искушенного в этой области человека литературу, опираясь на которую можно с самых азов дойти до полного понимания работы микроконтроллеров и других программируемых электронных элементов, включая осознание аспектов подключения к ним всего многообразия электронных устройств. Спасибо вам большое за помощь!!!
0
Модератор
8199 / 6070 / 810
Регистрация: 14.02.2011
Сообщений: 21,057
15.06.2020, 16:01 7
Цитата Сообщение от ssvchsl Посмотреть сообщение
работая с микроконтроллерами AVR.
вот по АВР книг сейчас до проха, зайди в книжный магазин и полистай, посмотри что тебе понятно
а вот когда я начинал с ними работать, точнее переходить с x51, из книг были справочник Евстигнеева да парочка публикаций в "Хакере"

Добавлено через 8 минут
и если начинаешь с AVR то прислушайся кCOKPOWEHEU,
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Если каких-либо предпочтений нет, можно начать с Arduino.
не надо будет делать(паять) отладочную плату

но есть еще семейство ARM в частности STM32, для них отладочных плат море самые знаменитые Nucleo, Discavery и голубая плата"(Stm32f103c8)
но с литературой напряженка в основном даташиты и статьи в интернете
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
15.06.2020, 16:06 8
Цитата Сообщение от ssvchsl Посмотреть сообщение
Решил начать освоение этого непростого направления, работая с микроконтроллерами AVR.
Только особо на них не задерживайтесь. 8-ми битные AVR и не только уже устаревшие. Современные МК при той же стоимости обладают намного лучшими характеристиками. Если планируете серьезно заниматься микроконтроллерами, ориентируйтесь на 32-ух битные.

Цитата Сообщение от ValeryS Посмотреть сообщение
но с литературой напряженка в основном даташиты и статьи в интернете
Этого достаточно. Не скажу что читая статьи в сети у меня возникли сложности с изучением STM32.
0
Модератор
8199 / 6070 / 810
Регистрация: 14.02.2011
Сообщений: 21,057
15.06.2020, 16:10 9
Цитата Сообщение от locm Посмотреть сообщение
Не скажу что читая статьи в сети у меня возникли сложности с изучением STM32.
не равняй
до STMок то были другие камни? т.е основы тактирование, периферия и прочие регистры были известны
а ТС начинает с нуля
0
0 / 0 / 0
Регистрация: 14.06.2020
Сообщений: 5
15.06.2020, 16:28  [ТС] 10
Спасибо, а что по литературе?
0
Эксперт .NET
6860 / 4464 / 1072
Регистрация: 25.05.2015
Сообщений: 13,645
Записей в блоге: 13
15.06.2020, 16:48 11
По STM есть «Си для встраиваемых систем» у волшебного дыма.
Я вообще никаких книг не читал...
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
15.06.2020, 17:25 12
Цитата Сообщение от ValeryS Посмотреть сообщение
до STMок то были другие камни?
Естественно.

Цитата Сообщение от ValeryS Посмотреть сообщение
т.е основы тактирование, периферия и прочие регистры были известны
а ТС начинает с нуля
А зачем начинающему знать про тактирование? В случае "синей платы" в system_stm32f10x.c по умолчанию оптимальные настройки для работы на частоте 72 МГц от кварца на 8 МГц.
Начинающий открывает файл main.c и пишет прогу.
Когда начинающий станет начавшим, будет разбираться с тактированием если это ему потребуется.
0
0 / 0 / 0
Регистрация: 14.06.2020
Сообщений: 5
15.06.2020, 18:44  [ТС] 13
Скажите, а есть какая литература, где доходчиво описано все самого начала: как что устроенно, что с чем согласуется, на каких принципах управляется и т.д? Спасибо.
0
Эксперт .NET
6860 / 4464 / 1072
Регистрация: 25.05.2015
Сообщений: 13,645
Записей в блоге: 13
15.06.2020, 18:46 14
Основы электроники чтоли?
0
2513 / 1558 / 335
Регистрация: 09.09.2017
Сообщений: 6,293
15.06.2020, 19:02 15
Цитата Сообщение от ValeryS Посмотреть сообщение
были справочник Евстигнеева
Наверное, Евстифеева "Микроконтроллеры AVR семейства Mega" (а еще classic, tiny...). Вот эта книга просто обязательна для работы с AVR. Это перевод и компиляция даташитов, организованная гораздо лучше самих даташитов. Но это не учебник, а справочник. Его не надо читать от корки до корки, а только подглядывать конкретные вопросы.
Цитата Сообщение от ValeryS Посмотреть сообщение
но есть еще семейство ARM в частности STM32
Да, если есть желание лезть в ARM, то самые распространенные сейчас - stm32. Они в несколько раз мощнее AVR, но гораздо сложнее в освоении (собственно, поэтому и не рекомендую с них начинать) и пайке. Хотя проблему пайки, конечно, можно нивелировать отладочными платами или заказом у китайцев.
Цитата Сообщение от locm Посмотреть сообщение
Только особо на них не задерживайтесь. 8-ми битные AVR и не только уже устаревшие.
Зависит от круга задач. Если все ограничится часами, термометрами и теплицами, хватит даже Ардуины с ее штатным кривым софтом. Но чем сложнее задачи, тем более заковыристую технику придется осваивать. Как везде.
Цитата Сообщение от locm Посмотреть сообщение
Этого достаточно. Не скажу что читая статьи в сети у меня возникли сложности с изучением STM32.
У меня возникали. В основном с инициализацией стека, ядра, настройками компилятора и другими базовыми вещами. В статьях почему-то любят начинать с установки IDE, а то и Куба напрочь пропуская основы.
Цитата Сообщение от ssvchsl Посмотреть сообщение
Спасибо, а что по литературе?
А что по литературе? Могу повторить:
Курс Di-Halt (дурацкие правила форума не позволяют кидать ссылки на другие ресурсы, даром что это не форум, но гуглится легко).
Юрий Ревич, Занимательная электроника. Правда, там большая часть по обычной, непрограммируемой, схемотехнике, но это тоже полезно.
Цитата Сообщение от locm Посмотреть сообщение
А зачем начинающему знать про тактирование? В случае "синей платы" в system_stm32f10x.c по умолчанию оптимальные настройки для работы на частоте 72 МГц от кварца на 8 МГц.
Потому что без подачи тактирования на каждый модуль они не заработают. Потому что для любого цифрового интерфейса важно задавать или хотя бы знать частоту, а она регулируется минимум в 4 местах.
Ну и частота по умолчанию в F103 кажется 1 МГц, но тут могу ошибаться. Но намного меньше 72 МГц точно.
Цитата Сообщение от locm Посмотреть сообщение
Начинающий открывает файл main.c и пишет прогу.
Только сначала ему нужно будет настроить кросс-компилятор, найти адреса заголовочных файлов, стартапов и прочего, прописать волшебные флаги, с которыми программист на "компьютерном" Си не сталкивается.
Если интересно начать именно с stm32, можно почитать тут: https://habr.com/ru/post/490474/ (пока что цикл из 3 статей).
Но, повторюсь, начинать сразу с stm32 - плохая идея, слишком высокий порог входа будет. Лучше все же AVR.
1
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
15.06.2020, 19:03 16
Цитата Сообщение от ssvchsl Посмотреть сообщение
как что устроенно, что с чем согласуется
На электрическом уровне? На программном уровне?

Цитата Сообщение от ssvchsl Посмотреть сообщение
на каких принципах управляется
Если речь про различные датчики и исполнительные устройства. Качаете на них даташит и в нем все написано.
0
Модератор
8199 / 6070 / 810
Регистрация: 14.02.2011
Сообщений: 21,057
15.06.2020, 19:07 17
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Евстифеева "Микроконтроллеры AVR семейства Mega"
да попутал
недавно пересматривал "Собачье сердце" с Евгений Александровичем, вот в памяти и всплыло
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
15.06.2020, 19:32 18
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Да, если есть желание лезть в ARM, то самые распространенные сейчас - stm32.
С точки зрения программиста ядро не столь важно. Писать ведь будем на Си.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Они в несколько раз мощнее AVR, но гораздо сложнее в освоении
Никто не говорит что стоит начинать с STM32H7.
STM32F030 или STM32F103 не сложные. Но зато для них даже программатор не нужен. Нет проблем с фьюзами потому что их нет, а это большие грабли для начинающих в AVR. И еще много других преимуществ

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Зависит от круга задач.
Задачу можно решить разными способами. Даже простую во многих случаях проще решать на STM32 чем на AVR.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Если все ограничится часами, термометрами и теплицами, хватит даже Ардуины с ее штатным кривым софтом.
В простых ардуинах есть встроенный RTC (для часов)? К слову он во всех STM32 присутствует.
Что касается термометров. Если датчик DS18B20, то его можно подключить к STM32 через USART+DMA или таймер+DMA и работа с ним на аппаратном уровне. А что в ардуинах? Сплошной ногодрыг! Отсюда ошибки при работе с датчиком из-за прерываний увеличивших время задержки ногодрыга и др.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
У меня возникали.
Это заметно по тому что вы очень осторожно работаете с STM32. Не нужно их боятся! Они не кусаются! Сложно на регистрах, возьмите SPL и все будет намного веселее.

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

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
В статьях почему-то любят начинать с установки IDE, а то и Куба напрочь пропуская основы.
Потому что 99% используют винду. ТС думаю тоже.

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

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ну и частота по умолчанию в F103 кажется 1 МГц
Если речь про старт МК, он запускается от RC генератора 8 МГц или другой в зависимости от модели.

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

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Если интересно начать именно с stm32, можно почитать тут: https://habr.com/ru/post/490474/ (пока что цикл из 3 статей).
Это не для начинающих, а для начавших, у которых есть некоторые знания и опыт.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Но, повторюсь, начинать сразу с stm32 - плохая идея, слишком высокий порог входа будет. Лучше все же AVR.
Не большой при правильном выборе IDE и обучающего материала,. Начинающему не нужно лезть в компилятор и отладчик. Для этого есть IDE. Ему не нужно с самого начала лезть на уровень регистров. Для начала SPL, потом можно ознакомится с ее функциями и понять как производится работа на уровне регистров.
0
2513 / 1558 / 335
Регистрация: 09.09.2017
Сообщений: 6,293
16.06.2020, 10:48 19
Цитата Сообщение от locm Посмотреть сообщение
На электрическом уровне? На программном уровне?
Если ТС хочет начать с самого начала (с закона Ома и т.п.) я бы посоветовал помимо Ревича еще Р.Сворень "Электроника шаг за шагом", там основы рассматриваются совсем простым языком и есть примеры устройств, которые можно повторить. Правда, на советской элементной базе, которую сейас можно и не найти. Но обычно можно посмотреть по документации и подобрать современное по принципу "не хуже".
Цитата Сообщение от locm Посмотреть сообщение
С точки зрения программиста ядро не столь важно. Писать ведь будем на Си.
В отличие от AVR, здесь придется лезть в ядро хотя бы для настройки тактирования. Ну и периферия сама себя не настроит, а настройки отличаются даже внутри STM, не говоря про разных производителей.
Цитата Сообщение от locm Посмотреть сообщение
Никто не говорит что стоит начинать с STM32H7.
Даже популярный F103 на несколько порядков сложнее не менее популярных ATmega8 / 328. Чтобы в этом убедиться достаточно посмотреть объем минимального HelloWorld'а. (358 строк на ассемблере + 50 для настройки тактирования + 10 для main) в STM против десятка строк в AVR.
Цитата Сообщение от locm Посмотреть сообщение
Но зато для них даже программатор не нужен. Нет проблем с фьюзами потому что их нет, а это большие грабли для начинающих в AVR.
Это да, отсутствие необходимости внешнего программатора и отсутствие фьюзов дают преимущество.
Правда, у той же Ардуины тоже есть загрузчик с UART, не умеющий ломать фьюзы. А имея Ардуину можно и свой программатор собрать, да хотя бы USBASP - заодно практика разработки платы и тому подобного.
Цитата Сообщение от locm Посмотреть сообщение
Задачу можно решить разными способами. Даже простую во многих случаях проще решать на STM32 чем на AVR.
Если знать оба семейства, возможно. Хотя даже так травить и паять плату под шаг 0.5 мм гораздо сложнее, чем под 1.25, а то и 2.5 мм. Плюс рабочие диапазоны напряжений: теоретически stm32 нельзя питать от литий-ионного аккумулятора или от трех полуторавольтовых батареек. Да и энергоэффективность у F103 так себе. В общем, придумать какую-нибудь интересную ситуацию можно.
Цитата Сообщение от locm Посмотреть сообщение
Переходите на винду и все будет проще.
Учитывая, что при переходе с нее стало проще, ваше заявление выглядит сомнительно.
Цитата Сообщение от locm Посмотреть сообщение
поставил IDE, создал проект и пишешь/отлаживаешь код, а всю работу с компилятором и отладчиком берет на себя IDE
... а потом не понимаешь как это работает, как не работает и как сделать чтобы снова работало.
Цитата Сообщение от locm Посмотреть сообщение
Если речь про старт МК, он запускается от RC генератора 8 МГц или другой в зависимости от модели.
Но по умолчанию там стоят делители, которые снижают ее, кажется, до 1 или 2 МГц. Нет, их можно перенастроить на 72/36/72 МГц, но это лишний код и ковыряние в документации (ну либо "IDE'шная магия"). По началу это дерево тактирования просто пугает.
И чем это лучше AVR, которые точно так же с завода тактируются от 1 МГц?
Цитата Сообщение от locm Посмотреть сообщение
Винда это не линукс где все нужно делать самому.
Не вводите ТСа в заблуждение. На самом деле разработка под Linux гораздо проще. В том числе потому что процесс разработки более прозрачен и то, что делается в IDE (а они там есть и от ваших слов никуда не денутся) можно посмотреть и повторить руками. А раз можно повторить, можно изменить, экспериментировать.
Цитата Сообщение от locm Посмотреть сообщение
Это не для начинающих, а для начавших, у которых есть некоторые знания и опыт.
А получать этот опыт вы предлагаете с помощью IDE-шной магии?
Я-то предлагаю начать с AVR, где таких тонкостей почти нет.
Цитата Сообщение от locm Посмотреть сообщение
Не большой при правильном выборе IDE и обучающего материала
Большой, большой, не сомневайтесь. Вы просто его уже преодолели и оцениваете исходя из текущего опыта.
Ну и обучающего материала по AVR все еще больше и он лучше структурирован.
0
Эксперт .NET
6860 / 4464 / 1072
Регистрация: 25.05.2015
Сообщений: 13,645
Записей в блоге: 13
16.06.2020, 10:50 20
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Хотя даже так травить и паять плату под шаг 0.5 мм гораздо сложнее, чем под 1.25, а то и 2.5 мм.
Ой ну не надо....
Сложно дома 0.2 мм дорожки протравить.
А 0.5 это широкое шоссе просто, прекрасно получается, и паять тоже. Как нефиг делать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2020, 10:50

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

Программирование микроконтроллеров
Можно- ли в lazarus программировать микроконтроллеры на паскале? Заранее благодарен за ответ.

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

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

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

Программирование микроконтроллеров на базе STM32F407VET
Имеется плата...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.