С чего начать программировать микроконтроллеры?
Re: с чего начать
Ардуино на ARM - это та еще головная боль для начинающего, практически любой более менее длинный код взятый из инета компилиться в родной среде ардуино под ARM не будет (разве что его специально под это затачивали) - у новичка это явно вызовет чувство дискомфорта, лучше взять классическую ардуину на меге328, можно и то и другое, в китае обычная на меге копейки стоит. (Если брать просто как девбоард на stm32 без "ардуинизма", то Ok).
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: с чего начать
20$ за плату с микроконтроллером stm32f401 и программатором/отладчиком, который можно использовать отдельно и под все остальные STM32 это разве дорого? Для меги328, которая в ардуине, если слетит бутлоадер, а это бывает, надо будет еще паять, покупать программатор.
там все ардуиноподобное и кода для начала хватит:
http://developer.mbed.org/components/
та же ардуина, потом можно и на нормальный си перейти
там все ардуиноподобное и кода для начала хватит:
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: С чего начать программировать микроконтроллеры?
Насчет фломастеров... они цвета разного но вкус у них одинаковый.
Изучать язык можно и на большом компьютере, но... язык это примерно 0.1% из того что нужно знать, и собственно сам язык изучается в "процессе" сверяясь с книгой или за пол часа если память хорошая прочитав первые страницы книги.
Язык - это мелочи. Дальше начинаются специфика - используемые библиотеки, особенности архитектуры и т.д. Есть конечно попытки упростить жизнь вроде ардуин и её специфического языка(но собственно язык этот - обычный С обвешаный макроопределениями до полной неузнаваемости) но всё это происходит за счет других ресурсов - быстродействия и объема используемой памяти.
Дальше, с чем предстоит столкнуться - это с ограничениями архитектуры, что несомненно отражается на алгоритмах. у ARM-подобных процессоров общение с периферией через порты ввода-вывода это весьма затратная операция, и помигать светодиодом на STM-ке с тактовой частотой в 72Мгц ничуть не быстрее(ну может чуть быстрее, раза в 2 всего лишь) AVR-ки на 8Мгц... Отсюда и разный подход к реализации алгоритмов. А в DSP-процессорах индивидуальные операции вообще считаются вселенским злом т.к. крайне не эффективны по сравнению с матричными. Там сложить два числа может оказаться дольше чем перемножить 8 пар чисел.
Изучать язык можно и на большом компьютере, но... язык это примерно 0.1% из того что нужно знать, и собственно сам язык изучается в "процессе" сверяясь с книгой или за пол часа если память хорошая прочитав первые страницы книги.
Язык - это мелочи. Дальше начинаются специфика - используемые библиотеки, особенности архитектуры и т.д. Есть конечно попытки упростить жизнь вроде ардуин и её специфического языка(но собственно язык этот - обычный С обвешаный макроопределениями до полной неузнаваемости) но всё это происходит за счет других ресурсов - быстродействия и объема используемой памяти.
Дальше, с чем предстоит столкнуться - это с ограничениями архитектуры, что несомненно отражается на алгоритмах. у ARM-подобных процессоров общение с периферией через порты ввода-вывода это весьма затратная операция, и помигать светодиодом на STM-ке с тактовой частотой в 72Мгц ничуть не быстрее(ну может чуть быстрее, раза в 2 всего лишь) AVR-ки на 8Мгц... Отсюда и разный подход к реализации алгоритмов. А в DSP-процессорах индивидуальные операции вообще считаются вселенским злом т.к. крайне не эффективны по сравнению с матричными. Там сложить два числа может оказаться дольше чем перемножить 8 пар чисел.
Re: с чего начать
oleg110592 писал(а):20$ за плату с микроконтроллером stm32f401 и программатором/отладчиком,
...
Во разогнался-то. ТС - школьник, класс 4-5-й, еще не знает правописания русского языка, а уж английский - только алфавит, и то вряд ли. Разве только спецшкола с "уклоном".
А ты советуешь железки, на которые на русском - только рекламки продаванов. Садист
Да и цены для школьника - неподъемные. Ему со своими вопросами - в радиокружок, или к учителю физики/информатики. Ну еще поискать в окрестностях соседа, который на МК что-нибудь сделал. Если уж очень приспичило... Хоть поглядит, чужого опыта наберется...
Глядишь - еще один "14-летний капитан" появится. Один парнишка такой уже есть на форуме...
Человек - это звучит гордо, а обезьяна - объективно...
Re: с чего начать
Как сказал:kilmur писал(а):Вопрос у меня в следуюшем с чего начать изучение МК точнее с какого производителя. я не спрашиваю какой лудше какой хуже а интересует какой проше для начала изучения.
Alexeyslav писал(а):Насчет фломастеров... они цвета разного но вкус у них одинаковый.
Абсолютно прав, у каждого свои плюсы и свои заморочки, идеала я думаю нет. Выбери любой хоть по считалке, для начала сойдёт. Я сначала решил изучать пики но чёто потом перебрался на авр, но могу написать прогу на любой из них. Пишу на микроси, может и не идеал но микроси есть и для авр и для пик, плюс в том что среда не меняется, единственное о чём приходиться задумываться регистры совсем другие, да и не только. Короче не заморачивайся выбирай что то одно: лучше в одном быть профи чем везде и кое как
Re: с чего начать
kilmur писал(а):здраствуйте коты вопрос у меня следуюший прошу не преврашать тему в флуд. Вопрос у меня в следуюшем с чего начать изучение МК точнее с какого производителя. я не спрашиваю какой лудше какой хуже а интересует какой проше для начала изучения. Просьба поменьше флуда. Это почти я так понял вопрос мироздания рождаюший массу не добрых высказываний в пользу апонента.
aen[/color]
от себя посоветую вам следующее:
1) начните с AVR т.к. примеров на оном мк в сети более чем достаточно от мигания светодиодом до управления двигателем
2) изучайте и пишите на Си т.к. именно с помощью этого языка вы сможете сосредоточиться на алгоритме и не отвлекаться на то, что для вас по началу не столь важно
ну и как говорит один спец
ARV писал(а):Хочешь быть хорошим программистом - учи Си, хочешь быть хорошим спецом по МК - учи асм. И то и другое со временем станет тебе дополнять друг друга, если, конечно, хоть что-то освоишь.
прислушайтесь и не пожалеете
Tell Me The Truth
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: С чего начать программировать микроконтроллеры?
Начинать полюбому надо с ассемблера, что поможет изучить сам контроллер, а уж потом нормальные программы писать на С. Как по мне, так именно в С слишком много отвлекающего и неважного.
Изучить все команды ассемблера(они и правда очень простые) гораздо легче чем изучить все особенности языка С и его библиотек, которые еще ко всему зависят от компилятора!
Если начинать изучать программирование с С и игнорировать ассемблер то высока вероятность развития культа карго.
Изучить все команды ассемблера(они и правда очень простые) гораздо легче чем изучить все особенности языка С и его библиотек, которые еще ко всему зависят от компилятора!
Если начинать изучать программирование с С и игнорировать ассемблер то высока вероятность развития культа карго.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: С чего начать программировать микроконтроллеры?
Начать надо с того, что прекратить спрашивать на форумах, а вместо этого изучать литературу. Хоть наугад возьмите и изучайте, следуйте всем рекомендациям и добейтесь получения тех результатов, о которых там пишут.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: С чего начать программировать микроконтроллеры?
Alexeyslav писал(а):Начинать по любому надо с ассемблера
И почему это, я вот например не знаю ассемблер для AVR но это мне нисколько не мешает писать прошивки. На Си лёгкий старт, готовые библиотеки, и тд. Надо будет изучит, или жизнь заставит но это не с разу.
Re: С чего начать программировать микроконтроллеры?
alex_ писал(а): На Си лёгкий старт, готовые библиотеки, и тд. .
Продукты микроЕ - компиляторы языка похожего на С ...
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: С чего начать программировать микроконтроллеры?
Ну да, можно конечно программировать на С не зная ассемблера и не зная как вообще работает микроконтроллер, но это будет как блуждание в потемках - программирование методом тыка.
- просто КОТ
- Друг Кота
- Сообщения: 12364
- Зарегистрирован: Пт дек 17, 2010 15:07:50
- Откуда: Крымский Федеральный Округ
- Контактная информация:
Re: С чего начать программировать микроконтроллеры?
Разве нельзя представлять себе устройство контроллера, не зная ассемблера?
Re: С чего начать программировать микроконтроллеры?
Представить можно, работать полноценно -нет.
-
thisbetterbegood
- Родился
- Сообщения: 8
- Зарегистрирован: Ср ноя 19, 2014 22:58:45
Re: С чего начать программировать микроконтроллеры?
Решил начать. Теоретические знания имею на уровне школы. Знаю си, имею опыт программирования на асм для х86. Теорию прочту как-нибудь, сейчас несколько вопросов:
1. Каков "стандартный набор" принадлежностей для данной области? Вольтметры, батареи, пассатижи и прочее, опишите пожалуйста, что мне понадобится. Я совсем даже не радиолюбитель пока ещё.
2. Как программа попадает в контроллер?
3. Как "распечатать" плату? Этим занимаются "индивидуальные предприниматели"?
4. С какого мк начать? Мне самому придётся паять? А составлять схемы? Если я покупаю готовую платформу, вроде arduino, мне необходимо будет самому проектировать схемы, или всё что останется - "воткнуть" в необходимый разъём какой-нибудь компонент и запрограммировать его?
1. Каков "стандартный набор" принадлежностей для данной области? Вольтметры, батареи, пассатижи и прочее, опишите пожалуйста, что мне понадобится. Я совсем даже не радиолюбитель пока ещё.
2. Как программа попадает в контроллер?
3. Как "распечатать" плату? Этим занимаются "индивидуальные предприниматели"?
4. С какого мк начать? Мне самому придётся паять? А составлять схемы? Если я покупаю готовую платформу, вроде arduino, мне необходимо будет самому проектировать схемы, или всё что останется - "воткнуть" в необходимый разъём какой-нибудь компонент и запрограммировать его?
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: С чего начать программировать микроконтроллеры?
Ээээ... Если чисто с МК играть, то ничего такого не надо. Ну мультиметр никогда не помешает.thisbetterbegood писал(а):1. Каков "стандартный набор" принадлежностей для данной области? Вольтметры, батареи, пассатижи и прочее, опишите пожалуйста, что мне понадобится. Я совсем даже не радиолюбитель пока ещё.
С помощью программатора и прошивающей программы, очевидно.thisbetterbegood писал(а):2. Как программа попадает в контроллер?
Да, у нас на сайте полно народу предлагают изготовить платы и статьи на эту тему тоже есть, поищите.thisbetterbegood писал(а):3. Как "распечатать" плату? Этим занимаются "индивидуальные предприниматели"?
Обычно рекомендуют AVR/PIC. Потому что сделать мигалку светодиодом там можно одной командой. Во всяких АРМах придётся написать ещё пару килобайт текста для инициализации периферии.thisbetterbegood писал(а):4. С какого мк начать?
Продаются запаяные контроллеры на отладочных платах, например http://www.chipdip.ru/product/avr-h128-c/ (на цену не смотрите). К ним штырьками можно подключить что угодно на беспаечной макетке, так что на первое время даже паяльник не нужет.thisbetterbegood писал(а):Мне самому придётся паять?
А как же? Другое дело что схемы обычно стандартные, пара резисторов и пара конденсаторов.thisbetterbegood писал(а):А составлять схемы?
Ардуина содержит паяный МК с зашитым в него бутлоадером и софт к ней (насколько я знаю). Так что для того чтобы помигать светодиодом к ней ничего не надо.thisbetterbegood писал(а):Если я покупаю готовую платформу, вроде arduino, мне необходимо будет самому проектировать схемы, или всё что останется - "воткнуть" в необходимый разъём какой-нибудь компонент и запрограммировать его?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
-
thisbetterbegood
- Родился
- Сообщения: 8
- Зарегистрирован: Ср ноя 19, 2014 22:58:45
Re: С чего начать программировать микроконтроллеры?
ну, для меня это вовсе не очевидноGudd-Head писал(а):С помощью программатора и прошивающей программы, очевидно.
а является ли это верным?Gudd-Head писал(а):Обычно рекомендуют AVR/PIC.
А например arduino можно в России купить? Сколько про подобное разговоров не слышал, все на всяких ebay покупают, из китая и других стран.
Вообще, представим какое-нибудь простое по выполняемым функциям устройство. Пусть термометр. Я хочу, чтоб показания датчика выводились на текстовый экран. С чего начать? Что понадобится? Паять нужно? А проектировать схему?
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: С чего начать программировать микроконтроллеры?
Просто там дешевле. Вот, например в России: http://www.chipdip.ru/catalog-show/arduino-controllers/thisbetterbegood писал(а):А например arduino можно в России купить? Сколько про подобное разговоров не слышал, все на всяких ebay покупают, из китая и других стран.
Начните с Proteus. Там можно собрать схему, залить прошивку в МК и запустить симуляцию посмотреть что получилось. Примеров термометров у нас дох*я.thisbetterbegood писал(а):Я хочу, чтоб показания датчика выводились на текстовый экран. С чего начать?
Поднадобится МК, дисплей, термометр, немного обвязки и источник питания. Как я уже говорил, если использовать беспаечные макетки, то паять не потребуется.thisbetterbegood писал(а):Что понадобится? Паять нужно? А проектировать схему?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
-
thisbetterbegood
- Родился
- Сообщения: 8
- Зарегистрирован: Ср ноя 19, 2014 22:58:45
Re: С чего начать программировать микроконтроллеры?
а что в качестве него обычно используют?Gudd-Head писал(а):источник питания
боюсь спрашивать, но это
что такое? Надеюсь, не бинтыGudd-Head писал(а):немного обвязки
- просто КОТ
- Друг Кота
- Сообщения: 12364
- Зарегистрирован: Пт дек 17, 2010 15:07:50
- Откуда: Крымский Федеральный Округ
- Контактная информация:
Re: С чего начать программировать микроконтроллеры?
По самому минимальному раскладу выходит так: http://radiokot.ru/circuit/digital/home/61/
-
thisbetterbegood
- Родился
- Сообщения: 8
- Зарегистрирован: Ср ноя 19, 2014 22:58:45
Re: С чего начать программировать микроконтроллеры?
посмотрел статью, непонятно - автор сам всё взял и "запаял"? И схему составил, и плату "протрассировал", и запрограммировал? А есть ли статья, чтоб подобное сделать, и чтоб был описан полный "цикл разработки"? Для нулевого нуля, как япросто КОТ писал(а):По самому минимальному раскладу выходит так:

