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




