Что такое ардуино?

Обсуждаем контроллеры компании Atmel.
Ответить
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

Alkul писал(а): Честно - я не понимаю, как можно писать на Си для avr. Самый простой пример - объясните мне, пожалуйста. Допустим, мне нужна некоторая переменная. Программируя на асм, я могу использовать для хранения переменной один из РОН, либо одну из ячеек ОЗУ. Разница огромная. Размещение в РОН дает более быстрый доступ, меньший объем кода, зато при сложных вычислениях может потребоваться сохранение регистров, хранящих переменные на стеке с последующим восстановлением, кроме того, если переменных много, регистров для их хранения просто не хватит. Человек в этом случае найдет баланс. А компилятор?
Именно по этой в том числе причине я считаю как минимум неоптимальным весь код ардуин, ведь под них пишут только на Си?
Во-первых, в том же gcc можно делать так:

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

register int cnt asm("r10");
Один раз я даже такое использовал на STM32, но это скорее исключение...
Во-вторых, если говорить конкретно о контроллере вентиляции погреба на тиньке, то там это зачем? Там скорость не важна, чтобы писать на Си нужно лишь немного больше флеша.
В-третьих, если действительно так получается, что из-за ограничений по скорости или объема флеша приходится писать на ассме, то однозначно нужно переходить на более серьезные мк, тем более цены сопоставимы с авр.
Реклама
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Сообщение Morroc »

Reflector писал(а): Во-вторых, если говорить конкретно о контроллере вентиляции погреба на тиньке, то там это зачем?
достаточно вот этого :)) потраченное на изготовление уникального девайса время неизмеримо дороже мк
oleg110592 писал(а):Так зачем держать кучу разных сред программирования, разнообразных программаторов/отладчиков под легкие и под трудные задачи, под разные типы микроконтроллеров. Это еще надо помнить как этим всем зоопарком управлять индивидуально, помнить ньюансы и тех и других. Мне, например проще работать в одной среде и с одним отладчиком (ленивый я) - ставлю в задачи, где ранее мега на 32/44 ноги управлялась, 48-миногий STM32F051 или совместимый по ногам упрощенный STM32F030.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Реклама
Друг Кота
Сообщения: 7722
Зарегистрирован: Вс июл 24, 2011 11:38:09

Сообщение 74LS00 »

Alkul писал(а):Если б Вы взяли на себя труд внимательно посмотреть, то увидели бы, что в конце статьи приложены и файл
вот именно, приложены, а если меня чтото не устраивает в схеме зачем мне её качать.
Вот вам проект до чего подобное приложение доходит. Ни куда светодиоды какой ногой, ни в какую сторону диоды, схема тоже приложена https://sourceforge.net/projects/ps2avr/

Может так вам понятнее, научитесь оформлять текст, а то ваша оптимизация нечитаема будет
Изображение

Про асм я писал, если партия тысячи штук, и если контролер стоит на пару центов дешевле это хороший повод сэкономить, им и так очень прилично платят и компании будет проще эти копейки пустить на зарплату работника. Разработка идёт минимум месяцы, так что нормальный програмист и на асме напишет, прошивка контролера это только малая часть устройства.
Для единичных заказов берётся самый удобный контролер, конечная цена заказа всё равно мало изменится, но времени потребуется меньше.
На форумах нет тех кто делает серийно, они сейчас как раз оптимизируют на асме.

Morroc, вот поэтому я и удаляю переносы строки после тега цитирования.
Подобно тинек я не связываюсь с мегой8. Функциональна она как 48 88 168 328 , но совместима только исходниками которые есть не всегда. Так что уж лучше написать под 168 на ардуине чем покупать мегу 8 и написаную пусть и оптимизировано но без исходников, куда я ею потом дену если она не заработает, неужто свой код туда потом вталкивать.

Тут могу сказать про stm, их слишком дохрена. Даже в avr разобратся не просто, а тут и вовсе длиннющие названия с кучей цифр, и не всегда в этих цифрах есть логика пропорциональная цене.
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1363
Зарегистрирован: Чт апр 04, 2013 22:22:57
Откуда: Белгород, РФ

Сообщение SIM31 »

oleg110592 писал(а):
Alkul писал(а):Но брать для данной задачи 32-х разрядный контроллер тоже глупо.
почему глупо? Ведь задачу 8-разрядного 32-х разрядный точно решит, да и потрудней задачу решит , которая уже 8-разрядному будет не под силу, а вдруг завтра возникнет такая необходимость. То что не все внутренние ресурсы задействованы микроконтроллер как то переживет, а вот когда вдруг обнаружится нехватка ресурсов - будет плохо разработчику, запас карман не тянет. Так зачем держать кучу разных сред программирования, разнообразных программаторов/отладчиков под легкие и под трудные задачи, под разные типы микроконтроллеров. Это еще надо помнить как этим всем зоопарком управлять индивидуально, помнить ньюансы и тех и других. Мне, например проще работать в одной среде и с одним отладчиком (ленивый я) - ставлю в задачи, где ранее мега на 32/44 ноги управлялась, 48-миногий STM32F051 или совместимый по ногам упрощенный STM32F030. Поверьте на слово - на STM32F0 оказалось задачи решать проще чем на меге.
http://www.compel.ru/lib/ne/2012/6/7-st ... h-resheniy
Именно по этой же причине, мне как-раз проще использовать линейку Arduino, от Arduino nano за 100 руб, до Arduino Due 32 битной за 600 руб, Arduino Yun с линуксом за 2000 руб, далее Raspbery Pi 3 и подобные, если нужно еще мощнее что-то.

По вашей ссылке почитал
Контроллер прямого доступа к памяти DMA (Direct Memory Access) содержит пять каналов.
Ну очень уж специфические области знаний надо осваивать, такое буду делать, если работодатель оплатит.

Добавлено after 11 minutes 18 seconds:
74LS00 писал(а):На форумах нет тех кто делает серийно, они сейчас как раз оптимизируют на асме.
На форумах есть все, люди же не с другой планеты :)

У меня есть знакомый что работает с ПЛИС по работе, выбрали ПЛИС чтобы можно было программно ножки менять, в микроконтроллерах не разбираются, только в ПЛИС. Логика выбора тоже инопланетянская. Начальник сказал, все исполняют, полугосударственная контора. Зато и обучение оплатили полностью, все отладочные платы.

Кто-то программирует на асм, в том числе те, кто не может выучить Си, даже тут есть такие. Не показатель профессионализма, скорее наоборот.

Вот по программированию в космической отрасли, круче некуда, а ошибки детские

Космическая ошибка: $370 000 000 за Integer overflow

https://habrahabr.ru/company/pvs-studio/blog/306748/

Изображение

Изображение

Вроде как у них уже с каких-то 1970х годов не асм, а Ада, фортрано-паскале подобное что-то.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

SIM31 писал(а):Ну очень уж специфические области знаний надо осваивать, такое буду делать, если работодатель оплатит
Это как раз очень легко оказалось освоить (потрачено пару часов), благодаря найденному примеру в интернете, теперь использую везде для динамической индикации, хотя можно и по старому, в прерывании, как в мегах. Тут было первое освоение всяких особенностей стм32ф0 (RTC, DMA и пр.):
http://radiokot.ru/forum/viewtopic.php? ... 5#p2059325
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Alkul писал(а):Критерий не использование всех возможностей. Критерий - можно ли с помощью данного инструмента решить задачу. Если можно, то не надо брать более мощный инструмент. особой разницы между тинькой и мегой, конечно же, нет. Но брать для данной задачи 32-х разрядный контроллер тоже глупо.
В чем глупость?
Alkul писал(а):Честно - я не понимаю, как можно писать на Си для avr.
Ну да. Изучить надо будет несколько больше, чем сотня команд камня. Тут, как известно, надо будет день потерять, чтобы потом за час долететь.

Добавлено after 18 minutes 15 seconds:
Alkul писал(а):Программируя на асм, я могу использовать для хранения переменной один из РОН, либо одну из ячеек ОЗУ. Разница огромная.
Если один и тот же МК будет выполнять одну и ту же задачу с одинаковым результатом, в чем разница? Ну кроме морального удовлетворения, что использовано флеш лишь 5%.

Добавлено after 4 minutes 3 seconds:
Во-первых, в том же gcc можно делать так:
register int cnt asm("r10");
Насколько я знаю, глобальные переменные так не объявить. Только в пределах видимости функции.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

Z_h_e писал(а):Насколько я знаю, глобальные переменные так не объявить. Только в пределах видимости функции.
Defining Global Register Variables
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Reflector писал(а):Defining Global Register Variables
Ок. Буду знать.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Друг Кота
Сообщения: 7722
Зарегистрирован: Вс июл 24, 2011 11:38:09

Сообщение 74LS00 »

SIM31, с ПЛИС понятно. Допустим у нас есть пара десятков ног, в плис это сигналы, а если быть точнее переменные.
Если нам надо сделать плату и разложить ноги, мы просто их тыкаем в окошке и сами меняются, а теперь возьмём avr.
Для простых устройств это пару десятков переменных дать номер чтоб он не совпадал с другими, в сишном варианте для питона это примерно так (с 200 строчки во вторых скобках). Как по мне, помнить десятки номеров ног трудновато. Более чем странно что в avr такой функции нет, неужели было сложно сделать генератор файла ног.
Я уж совсем забыл, в avr же нет ног у контролера, а у плис они есть
Контактная информация:
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

oleg110592 писал(а):
Alkul писал(а):Но брать для данной задачи 32-х разрядный контроллер тоже глупо.
почему глупо? Ведь задачу 8-разрядного 32-х разрядный точно решит, да и потрудней задачу решит
Я попробую пояснить, почему это глупо с моей точки зрения. Вы, конечно, можете смотреть на это по-иному.
Я работаю в "оборонке". Очень часто приходится делать изделия "двойного назначения", которые поставляются, допустим еще и в МЧС.
Для "военки" к применению однозначно разрешены только отечественные МК. Для поставки изделий на "гражданку" таких ограничений нет, но делать две параллельные разработки глупо, поэтому из импорта можно применить то, что имеет аналог среди отечественных МК. Чтобы схемотехника и код подвергались наименьшим изменениям при портировании с "военки" на "гражданку" и наоборот.
Импортных и отечественных МК, 100% совместимых между собой, не так много, поэтому выбор у меня невелик - пара контроллеров семейства х51, несколько avr и вот сейчас я пытаюсь понемногу изучать отечественные МК 1986ВЕ91... 1986ВЕ94, относящиеся к семейству STM32F103x, но времени на это нет - когда надо сразу два проекта доделывать и плюс готовить две заявки на изобретение, без которых эти проекты нельзя выпускать, то изучение нового МК непозволительная роскошь.
Именно поэтому лично у меня сформировался взгляд, что изучение и применение нового МК стоит делать только при НЕВОЗМОЖНОСТИ решения задачи на уже используемых МК.
Что касается "почему тинька, а не мега" в упомянутом контроллере вентиляции... Если честно - поспорил я с коллегой, что смогу на асме это реализовать в 2 КБ флеша :))

Но сама идея... Вот Вы подумайте - не деградируем ли мы? Чуть посложнее задача - и мы лапки кверху - не могу, давай МК помощнее. Думать, оптимизировать алгоритм? не, не слышал... А когда взят самый мощный МК, и при неумении оптимизировать и там достигнут потолок возможностей - что дальше делать?
74LS00 писал(а):вот именно, приложены, а если меня чтото не устраивает в схеме зачем мне её качать.
У Вас все еще dial-up 33600? Сочувствую. Эта схема, упакованная zip, "весит" 16 килобайт. Если я её выложу в виде картинки, Вы скачаете бОльшее количество данных, просто открывая страницу с картинкой. Вдобавок качество картинки с монитора далеко на "ах", а тому, кто решит повторить схему, лучше иметь нормальную распечатку - мало ли, он плату захочет по-своему развести?
74LS00 писал(а):Как по мне, помнить десятки номеров ног трудновато.
:facepalm:
74LS00 писал(а): Более чем странно что в avr такой функции нет, неужели было сложно сделать генератор файла ног.
Зачем нужен "генератор файла ног", если все "ноги" уже описаны в файле-описании МК?
Друг Кота
Сообщения: 7722
Зарегистрирован: Вс июл 24, 2011 11:38:09

Сообщение 74LS00 »

Эта схема, упакованная zip, "весит" 16 килобайт
у меня оптика. Картинка в статью публикуется как есть в хорошем разрешении и сжата только в страницу. Когда она в статье нужно только нажать в контекстном меню "показать картинку".
В случае с вашей статьёй это раз в 10 дольше.
Надо прокрутить статью 3 раза, трык, трык, трык, или сделать тык в страницу ведь это венда и в ней нет автозахвата мыши, причём ткнуть так чтоб не попасть в невидимую рекламу или другую ссылку.
Потом пырясь в кучу ссылок найти где написано схема в неё ткнуть.
Подождать 1сек пока она скачатеся, потом подождать диалоговое окно сохранения, тыкнуть в пункт открыть который появляется не всегда, поэтому надо ткнуть в пункт сохранить куда и сохранить.
Ещё через секунду у окна сохранения появится кнопка ок которая и сохранит.
После этого надо натыкать то куда сохранилось и открыть и хорошо ессли в системе дефолтно есть архиватор, и хорошо если дефолтно стоит сплан причём этой версии. И хорошо если это расширение не совпало с чемто от другой проги и файл не надо распаковывать.
Большинство особенно начинающих вашу схему даже смотреть не будут как ненужный формат, а профи она и вовсе не нужна.

Мужик в издательской сфере или в веб тебе ничего не светит, сиди на неизвестном заводе и делай то что никто не увидит , ковыряя бумажки.
Интернет и так не полезнее забора который отмоют или перекрасят, а подобные статьи и вовсе смотреть не будут, потомучто не видно.
Зачем нужен "генератор файла ног", если все "ноги" уже описаны в файле-описании МК?
да уж незачем, ведь сделать многослойную плату не так уж и сложно на заводе, пусть всякие нубы располагают дорожки в ряд, или вы пророк и знаете где какая нога будет, у меня почемуто так не получается. Я так понял вы програмист и даже платы не делаете
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1363
Зарегистрирован: Чт апр 04, 2013 22:22:57
Откуда: Белгород, РФ

Сообщение SIM31 »

Alkul писал(а):несколько avr
Какие AVR имеют российские аналоги?
Друг Кота
Аватара пользователя
Сообщения: 6337
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

Насчет расейских не знаю, а вот в Минске на Интеграле что-то пытались сообразить.
http://bms.by/ru/spec/index.php?pass=mcu
Номенклатура МК поражает воображение. :) Насчет освоения - не знаю, пошл'о ли дело дальше перемаркировки американских ( сделанных в Китае :) ) камней на INXXXXXX. Судя по впечатляющему списку моделей :( - нет.
Изображение
Друг Кота
Сообщения: 7722
Зарегистрирован: Вс июл 24, 2011 11:38:09

Сообщение 74LS00 »

Да уж интеграл прославился своими наклейками на чужом, причём доходило до полной наглости.
Вроде как росия купила у шараги на первую букву какуюто устаревшую контролеру в котором даже встроеной памяти нет и вроде как для военных целей её продвигает, цены только космические
Контактная информация:
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

SIM31 писал(а):Какие AVR имеют российские аналоги?
1887ВЕ4У - аналог ATmega8535
1887ВЕ7Т - аналог ATmega128
Друг Кота
Аватара пользователя
Сообщения: 3193
Зарегистрирован: Чт мар 26, 2009 04:35:04
Откуда: Москва

Сообщение Полосатый »

Ну как это к чему фото проводков - там ведь ровно столько проводков, сколько нужно :)

Про требования оборонки и споры с коллегами - всё понятно (раньше соревновались, кто самый короткий вирус напишет) - но это уже другая тема. В микроэлектронике воровать в принципе нельзя, поэтому у нас всё так проблематично. Но если нет директивных ограничений, то такой же корпус за такую же цену, но с хорошим запасом по возможностям использовать разумнее. Если голый функционал можно насильно впихнуть во что-то простое, то как быть с дополнительными защитами от нештатных ситуаций? Агрегаты с Марса перестают отвечать, а могли бы и прочухаться. Вон у америкосов главный процессор сдох - они резервный запустили и вроде до сих пор свой марсоход гоняют. Хотя бы сделать "листы дефектных блоков" для флеша, по аналогии с жёсткими дисками - тоже нужна "лишняя" память, которая может оказаться совсем не лишней.

Но это лирика, а если кто-то просто не хочет идти к ардуине, тогда ардуина придёт к нему :) Лично меня устраивает. Хочу вот сделать копировщик RFID ключей ... и нафига мне асм?
Изображение (Аль Котоне, кот ещё тот, Cattus Sapiens)
Усы и хвост - мои документы.
Кот - авторитет! Скажет "Мяу!" - не поспоришь. (скажи мне "мяу" и я скажу кто ты)
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Alkul писал(а):Я попробую пояснить, почему это глупо с моей точки зрения. Вы, конечно, можете смотреть на это по-иному.
Да, я смотрю по иному. До сего момента, мы обсуждали МК в целом и по сути для единичных устройств, никаких "военных ограничений" не было. Так что я не вижу никакой глупости применять значительно более мощный МК для той же задачи, при том, что если уж он и не дешевле, то и не дороже. А то что у Вас нет времени на изучение других МК, это довод может быть только лично для Вас, но не может являться аргументом подтверждающим Ваше утверждение.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Друг Кота
Сообщения: 7722
Зарегистрирован: Вс июл 24, 2011 11:38:09

Сообщение 74LS00 »

Полосатый писал(а):Но это лирика, а если кто-то просто не хочет идти к ардуине, тогда ардуина придёт к нему :) Лично меня устраивает. Хочу вот сделать копировщик RFID ключей ... и нафига мне асм?
Если нравится возится с кусками, ковыряйтесь с ардуиной. Под ардуину законченых устройств на эту тему нет.
Тем временем есть хороший копировщик на пиках с закрытыми исходниками, и уже готовится новая версия на более продвинутом пике, автор только в них силён. Тамже обсуждалось всякое и про ардуину, на этом и кончилось. Осталось подобие схемы и кривая прошивка.
Собирать копировщик одного стандарта экономически не выгодно когда можно повторить функциональнее на другой платформе
Контактная информация:
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Сообщение Vov123 »

74LS00 писал(а):Собирать копировщик одного стандарта экономически не выгодно
Чего там не выгодно. Взял готовые модули:
https://ru.aliexpress.com/item/Free-shi ... yId=400103
https://ru.aliexpress.com/item/high-qua ... 6ff1c24bb1

Соединить: https://ru.aliexpress.com/item/Free-Shi ... 0.0.817bIA

Собрать: http://arthurphdent.livejournal.com/1759.html

Изготовить, разобрать и забыть.

Пайки, ЛУТы, ПИКи - забыть.
Друг Кота
Аватара пользователя
Сообщения: 3193
Зарегистрирован: Чт мар 26, 2009 04:35:04
Откуда: Москва

Сообщение Полосатый »

Ага, у меня такое же :) За последнюю ссылку спасибо :) Просто пока не до этого в "мягких муравах у нас" ... но как только - так сразу :)
Изображение (Аль Котоне, кот ещё тот, Cattus Sapiens)
Усы и хвост - мои документы.
Кот - авторитет! Скажет "Мяу!" - не поспоришь. (скажи мне "мяу" и я скажу кто ты)
Ответить

Вернуться в «AVR»