Здравствуйте, DiPaolo, Вы писали:
DP>Не могли бы подробнее написать, что с ней не так?
Да всё с ней так. А аффтар скорее всего Ардуино никогда в руках не держал — иначе он бы знал, что существуют Ардуино на платформе ARM, для тех, кому нужно больше производительности (так называемые АРМдуино, например Дуе). Но для большинства задач, в которых Ардуино обычно применяется, старого доброго 8-битного AVR за глаза и за уши хватает, тем более они не такие уж и слабенькие — выдают до 20 MIPS (и даже 40+, если разогнать, но это уже out-of-spec). Использовать 32-битный контроллер для управления миганием светодиодов (и прочих подобных задач, где справился бы и 20-летний калькулятор) — вот это и есть настоящий идиотизм.
Здравствуйте, koandrew, Вы писали:
K>Использовать 32-битный контроллер для управления миганием светодиодов (и прочих подобных задач, где справился бы и 20-летний калькулятор) — вот это и есть настоящий идиотизм.
А почему нет? Увеличивается сложность написания программ? Нет. Нужно писать больше кода? Нет. Даже по цене младшие модели STM32 почти не отличаются от 8 и 16 битных.
А вот ставить линукс на микроконтроллер что бы помигать светодиодами — это точно идиотизм.
Здравствуйте, Denwer, Вы писали:
D>А почему нет? Увеличивается сложность написания программ? Нет. Нужно писать больше кода? Нет. Даже по цене младшие модели STM32 почти не отличаются от 8 и 16 битных.
Моё мнение — для любой задачи нужно применять адекватный инструмент. Если для решения задачи хватит 8-битного контроллера — то его и нужно использовать.
D>А вот ставить линукс на микроконтроллер что бы помигать светодиодами — это точно идиотизм.
Ну дык я его и не предлагаю
Здравствуйте, Denwer, Вы писали:
K>>Использовать 32-битный контроллер для управления миганием светодиодов (и прочих подобных задач, где справился бы и 20-летний калькулятор) — вот это и есть настоящий идиотизм.
D>А почему нет? Увеличивается сложность написания программ? Нет. Нужно писать больше кода? Нет.
Да, именно. Увеличивается сложность, хотя бы потому что в АРМе нужно вначале запрограммировать тактовый генератор. В АВР он работает на частоте кварца, в АРМах же стоит умножитель частоты с ФАПЧ, при включении проц начинает работать на частоте генератора и при инициализации нужно запрограммировать генератор на нужную частоту — установить нужный коэффициент умножения, энаблить, затем дождаться соответствующего бита, показывающего что ФАПЧ выполнило захват частоты, после этого работать дальше. Но и дальше не все так просто: там более сложная архитектура памятей, обычно имеется несколько шин, для оптимизации нужно выбрать периферию таким образом, чтобы одновременно передаваемые данные шли по разным шинам. Да и сами периферийные устройства намного сложнее, даже банальные таймеры.
Я отвечаю за свои слова, а не за то как вы их интерпретируете!
Здравствуйте, koandrew, Вы писали:
K>Здравствуйте, Denwer, Вы писали:
D>>А почему нет? Увеличивается сложность написания программ? Нет. Нужно писать больше кода? Нет. Даже по цене младшие модели STM32 почти не отличаются от 8 и 16 битных. K>Моё мнение — для любой задачи нужно применять адекватный инструмент. Если для решения задачи хватит 8-битного контроллера — то его и нужно использовать.
Адекватный инструмент этот как раз STM32, в следующий раз когда нужна будет производительность не придется изучать новый микроконтроллер, просто выбрать более производительную модель из STM32. Мы на работе именно так и поступили, простые датчики на простых STM32, сложные устройства на более мощных STM32 (746 серия). Все пишется в одной среде, один отладчик. Это очень удобно работать на одной архитектуре и на одном производителе. Сразу знаешь где искать информацию, умеешь пользоваться разными тулсами. То что для простой задачи используется 32-х битный процессор не означает что придется делать лишнюю работу. Какой смысл применять 8-ми битный? Да его нет, разве что "и его хватает" (а по мне так очень созвучно "и так сойдет").
Здравствуйте, qwertyuiop, Вы писали:
Q>Здравствуйте, Denwer, Вы писали:
K>>>Использовать 32-битный контроллер для управления миганием светодиодов (и прочих подобных задач, где справился бы и 20-летний калькулятор) — вот это и есть настоящий идиотизм.
D>>А почему нет? Увеличивается сложность написания программ? Нет. Нужно писать больше кода? Нет.
Q>Да, именно. Увеличивается сложность, хотя бы потому что в АРМе нужно вначале запрограммировать тактовый генератор. В АВР он работает на частоте кварца, в АРМах же стоит умножитель частоты с ФАПЧ, при включении проц начинает работать на частоте генератора и при инициализации нужно запрограммировать генератор на нужную частоту — установить нужный коэффициент умножения, энаблить, затем дождаться соответствующего бита, показывающего что ФАПЧ выполнило захват частоты, после этого работать дальше. Но и дальше не все так просто: там более сложная архитектура памятей, обычно имеется несколько шин, для оптимизации нужно выбрать периферию таким образом, чтобы одновременно передаваемые данные шли по разным шинам. Да и сами периферийные устройства намного сложнее, даже банальные таймеры.
Это что за 19-й век? Вся инициализация делается HAL-ом сейчас. Просто накидать проект, который будет моргать светодиодами — 5 минут работы. Скачивается CubeMX и там создается заготовка. Бонусом получаем возможность сделать проект на основе FreeRTOS.
Здравствуйте, Denwer, Вы писали:
D>Адекватный инструмент этот как раз STM32, в следующий раз когда нужна будет производительность не придется изучать новый микроконтроллер, просто выбрать более производительную модель из STM32. Мы на работе именно так и поступили, простые датчики на простых STM32, сложные устройства на более мощных STM32 (746 серия). Все пишется в одной среде, один отладчик. Это очень удобно работать на одной архитектуре и на одном производителе. Сразу знаешь где искать информацию, умеешь пользоваться разными тулсами. То что для простой задачи используется 32-х битный процессор не означает что придется делать лишнюю работу. Какой смысл применять 8-ми битный? Да его нет, разве что "и его хватает" (а по мне так очень созвучно "и так сойдет").
Лично для меня огромным агрументом в пользу Атмела является IDE, навыки работы с которой за годы карьеры у меня уже прошились в спинном мозге. Потому мне удаётся избегать взаимодействия с высерами других производителей МК, которые они ещё имеют наглостьсмелость называть "IDE". А тут я сел и сходу почувствовал себя как дома, и потому мне приходится воевать только с собственными косяками (как в софте, так и в железе), а не пытаться определить, что именно курили аффтары очередного диалога.
Аргумент про изучение МК вообще смешён в контексте любительской разработки. Если ты вдруг не в курсе, то я тебе объясню, как это происходит у любителей: Пишем код в Ардуино ИДЕ (или в VS/Atmel Studio с VisualMicro) на С.
Компилим его, заливаем в чип и врубаем.
Если не пашет и по итогам разбирательства выясняется, что не хватает скорости, то покупаем АРМдуино, меняем таргет в ИДЕ, компилируем, заливаем в новый чип. Код обычно менять или не нужно вообще, или внести минимальные изменения (типа других используемых номеров пинов)
Знание тонкостей отдельных чипов абсолютно не нужно, достаточно лишь найти переключатель таргета в своей ИДЕ, и знать URL инет магазина, где можно купить нужные чипы/платы.
Я конечно, допускаю, что кто-то из профессионалов может по памяти назвать все команды и регистры используемого МК, но те профи, которых я знаю, этой фигнёй не маятся и поступают примерно так же, как описал выше для любителей. Даже С
Кстати я ещё не придумал такой задачи, где мне не хватило бы 328P именно по причине недостаточной производительности (есть пара задач, где мне не хватает памяти, и для них я купил Дуе, в которой её более чем достаточно).
Здравствуйте, Denwer, Вы писали:
D>Это что за 19-й век? Вся инициализация делается HAL-ом сейчас. Просто накидать проект, который будет моргать светодиодами — 5 минут работы. Скачивается CubeMX и там создается заготовка. Бонусом получаем возможность сделать проект на основе FreeRTOS.
Ну и нафига тогда этот АРМ нужен для моргания светодиодами?
Здравствуйте, koandrew, Вы писали:
K>Использовать 32-битный контроллер для управления миганием светодиодов (и прочих подобных задач, где справился бы и 20-летний калькулятор) — вот это и есть настоящий идиотизм.
Это не идиотизм по одной простой причине: используя процессор типа Cortex-M я без проблем могу работать на полноценном C++14 со всеми его возможностями, а не на убогом Processing/Wiring.
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, IID, Вы писали:
IID>>Ардуино — говна кусок. Надо было платы на STM32 брать. S>Подкинь пожалуйста ссылочку на базовый комплект недорогой...
Может тебе всё же в начале разобраться что ты хочешь, а потом уже подбирать нужные компоненты? )
Кстати, тебя тут возможно слегка запутали, но есть два "измерения" обсуждаемых вещей. 1. Профессиональные решения vs. упрощённые любительские 2. Архитектура процессора. И эти измерения могут меняться независимо друг от друга.
Так вот, профессиональные решения — это всегда закупка отдельного нормального МК, проектирование платы, программирование специализированным программатором, неиспользование дурацких готовых программных фреймворков (типа arduino). И соответственно любительские — это покупка готовое платы (обычно с usb входом для программирования) и программирование в каком-нибудь убогом (но зато уже написанном) фреймворке, в котором имеются готовые модули почти на все случаи жизни.
Архитектур МК сейчас много: AVR, ARM8, MSP430, PIC, AVR32, ARM32 (Cortex-M), x86 (Quark) и т.д. Но на мой взгляд в данный момент времени есть смысл использовать в новых проектах исключительно Cortex-M, т.к. это позволяет использовать современные мощные программные инструменты (например тот же Qt Creator+GCC) при той же цене за сам МК. В отличие от остальных решений, обычно использующих убогие проприетарные поделки от производителя процессора.
Так вот, то что обычно называют ардуинкой — это готовый фреймворк для любителей, созданный для работы с процессорами архитектуры AVR. Т.е. это убогое решение сразу по двум измерениям. Естественно есть готовые фреймворки/платы (всяческие другие *duino'ы, edison'ы, ChipKIT'ы и т.п.) и под другие архитектуры, чтобы любители особо не страдали. Но если заниматься по серьёзному, то лучше сразу начать с низкого уровня: голый МК и чистый C++.
Здравствуйте, koandrew, Вы писали:
K>Здравствуйте, Denwer, Вы писали:
K>Лично для меня огромным агрументом в пользу Атмела является IDE, навыки работы с которой за годы карьеры у меня уже прошились в спинном мозге.
Ну так с этого и нужно было начинать, а не писать что 8-ми бит хватает.
Здравствуйте, alex_public, Вы писали:
_>Это не идиотизм по одной простой причине: используя процессор типа Cortex-M я без проблем могу работать на полноценном C++14 со всеми его возможностями, а не на убогом Processing/Wiring.
Это, конечно, очень весомый агрумент — возможность написать мигалку светодиодами на С++14!
Здравствуйте, Denwer, Вы писали:
D>Ну так с этого и нужно было начинать, а не писать что 8-ми бит хватает.
Нет — важно именно то, что "хватает". А раз мне любого МК хватает, то в дело вступают другие факторы — в моём случае тулчейн. Если бы мне не хватало МК, то никакая ИДЕ не заставила бы меня иметь дело с платформой, которая не может решить моих задач.
Смотря что понимать под "заниматься профессионально". Вот я на работе, нопример, в рабочее время из купленного за деньги предприятия сооружу часы. Большие часы с сегментами из светодиодных лент и так далее.
Или зацеплю несколько датчиков влажности\температуры и на основе их показаний буду включать-выключать вентиляцию на складе.
Ну, как например.
Это и есть "заниматься профессионально". Нужны ли тут мощные решения? Нет, не нужны.
А если я захочу себе дома собрать гексакоптер, да еще с мозгами, то тут да, желательно нечто пошустрее ардуинки, ибо реагировать надо в реальном времени. Это — "любитель, хобби".
Я — любитель (хотя и на работу уже пару вариантов применения обдумываю, в том числе часы 4хсегментные из светодиодных лент, высотой в три этажа). Как я понял — пока что мне хватит ардуинки. Если перестанет хватать её — буду смотреть дальше уже осознанно и с пониманием.
Здравствуйте, koandrew, Вы писали:
_>>Это не идиотизм по одной простой причине: используя процессор типа Cortex-M я без проблем могу работать на полноценном C++14 со всеми его возможностями, а не на убогом Processing/Wiring. K>Это, конечно, очень весомый агрумент — возможность написать мигалку светодиодами на С++14!
Кстати говоря, современный C++ с его статическим полиморфизмом, constexpr и т.п. — это просто мечта для программирования маленьких МК, у которых обычно сильно ограничена память.