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

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: с чего начать

Сообщение Morroc »

Ардуино на ARM - это та еще головная боль для начинающего, практически любой более менее длинный код взятый из инета компилиться в родной среде ардуино под ARM не будет (разве что его специально под это затачивали) - у новичка это явно вызовет чувство дискомфорта, лучше взять классическую ардуину на меге328, можно и то и другое, в китае обычная на меге копейки стоит. (Если брать просто как девбоард на stm32 без "ардуинизма", то Ok).
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: с чего начать

Сообщение oleg110592 »

20$ за плату с микроконтроллером stm32f401 и программатором/отладчиком, который можно использовать отдельно и под все остальные STM32 это разве дорого? Для меги328, которая в ардуине, если слетит бутлоадер, а это бывает, надо будет еще паять, покупать программатор.
там все ардуиноподобное и кода для начала хватит:
http://developer.mbed.org/components/

Код: Выделить всё

#include "mbed.h"
#include "TextLCD.h"

TextLCD lcd(p15, p16, p17, p18, p19, p20, TextLCD::LCD20x4); // rs, e, d4-d7

int main() {
    lcd.printf("Hello World!\n");
}
та же ардуина, потом можно и на нормальный си перейти
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: С чего начать программировать микроконтроллеры?

Сообщение Alexeyslav »

Насчет фломастеров... они цвета разного но вкус у них одинаковый.

Изучать язык можно и на большом компьютере, но... язык это примерно 0.1% из того что нужно знать, и собственно сам язык изучается в "процессе" сверяясь с книгой или за пол часа если память хорошая прочитав первые страницы книги.
Язык - это мелочи. Дальше начинаются специфика - используемые библиотеки, особенности архитектуры и т.д. Есть конечно попытки упростить жизнь вроде ардуин и её специфического языка(но собственно язык этот - обычный С обвешаный макроопределениями до полной неузнаваемости) но всё это происходит за счет других ресурсов - быстродействия и объема используемой памяти.

Дальше, с чем предстоит столкнуться - это с ограничениями архитектуры, что несомненно отражается на алгоритмах. у ARM-подобных процессоров общение с периферией через порты ввода-вывода это весьма затратная операция, и помигать светодиодом на STM-ке с тактовой частотой в 72Мгц ничуть не быстрее(ну может чуть быстрее, раза в 2 всего лишь) AVR-ки на 8Мгц... Отсюда и разный подход к реализации алгоритмов. А в DSP-процессорах индивидуальные операции вообще считаются вселенским злом т.к. крайне не эффективны по сравнению с матричными. Там сложить два числа может оказаться дольше чем перемножить 8 пар чисел.
Аватара пользователя
SergeBS
Вымогатель припоя
Сообщения: 683
Зарегистрирован: Пт апр 11, 2008 11:24:53
Откуда: Владимир

Re: с чего начать

Сообщение SergeBS »

oleg110592 писал(а):20$ за плату с микроконтроллером stm32f401 и программатором/отладчиком,
...

Во разогнался-то. ТС - школьник, класс 4-5-й, еще не знает правописания русского языка, а уж английский - только алфавит, и то вряд ли. Разве только спецшкола с "уклоном".
А ты советуешь железки, на которые на русском - только рекламки продаванов. Садист :)
Да и цены для школьника - неподъемные. Ему со своими вопросами - в радиокружок, или к учителю физики/информатики. Ну еще поискать в окрестностях соседа, который на МК что-нибудь сделал. Если уж очень приспичило... Хоть поглядит, чужого опыта наберется...
Глядишь - еще один "14-летний капитан" появится. Один парнишка такой уже есть на форуме...
Человек - это звучит гордо, а обезьяна - объективно...
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Re: с чего начать

Сообщение alex_ »

kilmur писал(а):Вопрос у меня в следуюшем с чего начать изучение МК точнее с какого производителя. я не спрашиваю какой лудше какой хуже а интересует какой проше для начала изучения.
Как сказал:
Alexeyslav писал(а):Насчет фломастеров... они цвета разного но вкус у них одинаковый.

Абсолютно прав, у каждого свои плюсы и свои заморочки, идеала я думаю нет. Выбери любой хоть по считалке, для начала сойдёт. Я сначала решил изучать пики но чёто потом перебрался на авр, но могу написать прогу на любой из них. Пишу на микроси, может и не идеал но микроси есть и для авр и для пик, плюс в том что среда не меняется, единственное о чём приходиться задумываться регистры совсем другие, да и не только. Короче не заморачивайся выбирай что то одно: лучше в одном быть профи чем везде и кое как :roll:
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: с чего начать

Сообщение FreshMan »

kilmur писал(а):здраствуйте коты вопрос у меня следуюший прошу не преврашать тему в флуд. Вопрос у меня в следуюшем с чего начать изучение МК точнее с какого производителя. я не спрашиваю какой лудше какой хуже а интересует какой проше для начала изучения. Просьба поменьше флуда. Это почти я так понял вопрос мироздания рождаюший массу не добрых высказываний в пользу апонента.
aen[/color]

от себя посоветую вам следующее:
1) начните с AVR т.к. примеров на оном мк в сети более чем достаточно от мигания светодиодом до управления двигателем
2) изучайте и пишите на Си т.к. именно с помощью этого языка вы сможете сосредоточиться на алгоритме и не отвлекаться на то, что для вас по началу не столь важно
ну и как говорит один спец :))
ARV писал(а):Хочешь быть хорошим программистом - учи Си, хочешь быть хорошим спецом по МК - учи асм. И то и другое со временем станет тебе дополнять друг друга, если, конечно, хоть что-то освоишь.

прислушайтесь и не пожалеете :wink:
Tell Me The Truth
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: С чего начать программировать микроконтроллеры?

Сообщение Alexeyslav »

Начинать полюбому надо с ассемблера, что поможет изучить сам контроллер, а уж потом нормальные программы писать на С. Как по мне, так именно в С слишком много отвлекающего и неважного.
Изучить все команды ассемблера(они и правда очень простые) гораздо легче чем изучить все особенности языка С и его библиотек, которые еще ко всему зависят от компилятора!
Если начинать изучать программирование с С и игнорировать ассемблер то высока вероятность развития культа карго.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: С чего начать программировать микроконтроллеры?

Сообщение ARV »

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

Мой уютный бложик... заходите!
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Re: С чего начать программировать микроконтроллеры?

Сообщение alex_ »

Alexeyslav писал(а):Начинать по любому надо с ассемблера

И почему это, я вот например не знаю ассемблер для AVR но это мне нисколько не мешает писать прошивки. На Си лёгкий старт, готовые библиотеки, и тд. Надо будет изучит, или жизнь заставит но это не с разу.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: С чего начать программировать микроконтроллеры?

Сообщение dosikus »

alex_ писал(а): На Си лёгкий старт, готовые библиотеки, и тд. .


Продукты микроЕ - компиляторы языка похожего на С ...
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: С чего начать программировать микроконтроллеры?

Сообщение Alexeyslav »

Ну да, можно конечно программировать на С не зная ассемблера и не зная как вообще работает микроконтроллер, но это будет как блуждание в потемках - программирование методом тыка.
Аватара пользователя
просто КОТ
Друг Кота
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ
Контактная информация:

Re: С чего начать программировать микроконтроллеры?

Сообщение просто КОТ »

Разве нельзя представлять себе устройство контроллера, не зная ассемблера?
Изображение
И ты врёшь!!! © Vladisman
Изображение
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: С чего начать программировать микроконтроллеры?

Сообщение dosikus »

Представить можно, работать полноценно -нет.
thisbetterbegood
Родился
Сообщения: 8
Зарегистрирован: Ср ноя 19, 2014 22:58:45

Re: С чего начать программировать микроконтроллеры?

Сообщение thisbetterbegood »

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

1. Каков "стандартный набор" принадлежностей для данной области? Вольтметры, батареи, пассатижи и прочее, опишите пожалуйста, что мне понадобится. Я совсем даже не радиолюбитель пока ещё.
2. Как программа попадает в контроллер?
3. Как "распечатать" плату? Этим занимаются "индивидуальные предприниматели"?
4. С какого мк начать? Мне самому придётся паять? А составлять схемы? Если я покупаю готовую платформу, вроде arduino, мне необходимо будет самому проектировать схемы, или всё что останется - "воткнуть" в необходимый разъём какой-нибудь компонент и запрограммировать его?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: С чего начать программировать микроконтроллеры?

Сообщение Gudd-Head »

thisbetterbegood писал(а):1. Каков "стандартный набор" принадлежностей для данной области? Вольтметры, батареи, пассатижи и прочее, опишите пожалуйста, что мне понадобится. Я совсем даже не радиолюбитель пока ещё.
Ээээ... Если чисто с МК играть, то ничего такого не надо. Ну мультиметр никогда не помешает.
thisbetterbegood писал(а):2. Как программа попадает в контроллер?
С помощью программатора и прошивающей программы, очевидно.
thisbetterbegood писал(а):3. Как "распечатать" плату? Этим занимаются "индивидуальные предприниматели"?
Да, у нас на сайте полно народу предлагают изготовить платы и статьи на эту тему тоже есть, поищите.
thisbetterbegood писал(а):4. С какого мк начать?
Обычно рекомендуют AVR/PIC. Потому что сделать мигалку светодиодом там можно одной командой. Во всяких АРМах придётся написать ещё пару килобайт текста для инициализации периферии.
thisbetterbegood писал(а):Мне самому придётся паять?
Продаются запаяные контроллеры на отладочных платах, например http://www.chipdip.ru/product/avr-h128-c/ (на цену не смотрите). К ним штырьками можно подключить что угодно на беспаечной макетке, так что на первое время даже паяльник не нужет.
thisbetterbegood писал(а):А составлять схемы?
А как же? Другое дело что схемы обычно стандартные, пара резисторов и пара конденсаторов.
thisbetterbegood писал(а):Если я покупаю готовую платформу, вроде arduino, мне необходимо будет самому проектировать схемы, или всё что останется - "воткнуть" в необходимый разъём какой-нибудь компонент и запрограммировать его?
Ардуина содержит паяный МК с зашитым в него бутлоадером и софт к ней (насколько я знаю). Так что для того чтобы помигать светодиодом к ней ничего не надо.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
thisbetterbegood
Родился
Сообщения: 8
Зарегистрирован: Ср ноя 19, 2014 22:58:45

Re: С чего начать программировать микроконтроллеры?

Сообщение thisbetterbegood »

Gudd-Head писал(а):С помощью программатора и прошивающей программы, очевидно.
ну, для меня это вовсе не очевидно :)

Gudd-Head писал(а):Обычно рекомендуют AVR/PIC.
а является ли это верным?

А например arduino можно в России купить? Сколько про подобное разговоров не слышал, все на всяких ebay покупают, из китая и других стран.

Вообще, представим какое-нибудь простое по выполняемым функциям устройство. Пусть термометр. Я хочу, чтоб показания датчика выводились на текстовый экран. С чего начать? Что понадобится? Паять нужно? А проектировать схему?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: С чего начать программировать микроконтроллеры?

Сообщение Gudd-Head »

thisbetterbegood писал(а):А например arduino можно в России купить? Сколько про подобное разговоров не слышал, все на всяких ebay покупают, из китая и других стран.
Просто там дешевле. Вот, например в России: http://www.chipdip.ru/catalog-show/arduino-controllers/
thisbetterbegood писал(а):Я хочу, чтоб показания датчика выводились на текстовый экран. С чего начать?
Начните с Proteus. Там можно собрать схему, залить прошивку в МК и запустить симуляцию посмотреть что получилось. Примеров термометров у нас дох*я.
thisbetterbegood писал(а):Что понадобится? Паять нужно? А проектировать схему?
Поднадобится МК, дисплей, термометр, немного обвязки и источник питания. Как я уже говорил, если использовать беспаечные макетки, то паять не потребуется.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
thisbetterbegood
Родился
Сообщения: 8
Зарегистрирован: Ср ноя 19, 2014 22:58:45

Re: С чего начать программировать микроконтроллеры?

Сообщение thisbetterbegood »

Gudd-Head писал(а):источник питания
а что в качестве него обычно используют?

боюсь спрашивать, но это
Gudd-Head писал(а):немного обвязки
что такое? Надеюсь, не бинты :))
Аватара пользователя
просто КОТ
Друг Кота
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ
Контактная информация:

Re: С чего начать программировать микроконтроллеры?

Сообщение просто КОТ »

По самому минимальному раскладу выходит так: http://radiokot.ru/circuit/digital/home/61/
Изображение
И ты врёшь!!! © Vladisman
Изображение
thisbetterbegood
Родился
Сообщения: 8
Зарегистрирован: Ср ноя 19, 2014 22:58:45

Re: С чего начать программировать микроконтроллеры?

Сообщение thisbetterbegood »

просто КОТ писал(а):По самому минимальному раскладу выходит так:
посмотрел статью, непонятно - автор сам всё взял и "запаял"? И схему составил, и плату "протрассировал", и запрограммировал? А есть ли статья, чтоб подобное сделать, и чтоб был описан полный "цикл разработки"? Для нулевого нуля, как я :)
Ответить

Вернуться в «Теория»