Страница 4 из 5

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

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

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

register int cnt asm("r10");
Один раз я даже такое использовал на STM32, но это скорее исключение...
Во-вторых, если говорить конкретно о контроллере вентиляции погреба на тиньке, то там это зачем? Там скорость не важна, чтобы писать на Си нужно лишь немного больше флеша.
В-третьих, если действительно так получается, что из-за ограничений по скорости или объема флеша приходится писать на ассме, то однозначно нужно переходить на более серьезные мк, тем более цены сопоставимы с авр.

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

Добавлено: Сб окт 22, 2016 19:30:07
Morroc
Reflector писал(а): Во-вторых, если говорить конкретно о контроллере вентиляции погреба на тиньке, то там это зачем?
достаточно вот этого :)) потраченное на изготовление уникального девайса время неизмеримо дороже мк
oleg110592 писал(а):Так зачем держать кучу разных сред программирования, разнообразных программаторов/отладчиков под легкие и под трудные задачи, под разные типы микроконтроллеров. Это еще надо помнить как этим всем зоопарком управлять индивидуально, помнить ньюансы и тех и других. Мне, например проще работать в одной среде и с одним отладчиком (ленивый я) - ставлю в задачи, где ранее мега на 32/44 ноги управлялась, 48-миногий STM32F051 или совместимый по ногам упрощенный STM32F030.

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

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

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

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

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

Тут могу сказать про stm, их слишком дохрена. Даже в avr разобратся не просто, а тут и вовсе длиннющие названия с кучей цифр, и не всегда в этих цифрах есть логика пропорциональная цене.

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

Добавлено: Сб окт 22, 2016 20:07:08
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х годов не асм, а Ада, фортрано-паскале подобное что-то.

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

Добавлено: Сб окт 22, 2016 20:13:47
oleg110592
SIM31 писал(а):Ну очень уж специфические области знаний надо осваивать, такое буду делать, если работодатель оплатит
Это как раз очень легко оказалось освоить (потрачено пару часов), благодаря найденному примеру в интернете, теперь использую везде для динамической индикации, хотя можно и по старому, в прерывании, как в мегах. Тут было первое освоение всяких особенностей стм32ф0 (RTC, DMA и пр.):
http://radiokot.ru/forum/viewtopic.php? ... 5#p2059325

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

Добавлено: Сб окт 22, 2016 20:52:33
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");
Насколько я знаю, глобальные переменные так не объявить. Только в пределах видимости функции.

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

Добавлено: Сб окт 22, 2016 20:58:43
Reflector
Z_h_e писал(а):Насколько я знаю, глобальные переменные так не объявить. Только в пределах видимости функции.
Defining Global Register Variables

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

Добавлено: Сб окт 22, 2016 21:13:47
Z_h_e
Reflector писал(а):Defining Global Register Variables
Ок. Буду знать.

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

Добавлено: Сб окт 22, 2016 21:29:40
74LS00
SIM31, с ПЛИС понятно. Допустим у нас есть пара десятков ног, в плис это сигналы, а если быть точнее переменные.
Если нам надо сделать плату и разложить ноги, мы просто их тыкаем в окошке и сами меняются, а теперь возьмём avr.
Для простых устройств это пару десятков переменных дать номер чтоб он не совпадал с другими, в сишном варианте для питона это примерно так (с 200 строчки во вторых скобках). Как по мне, помнить десятки номеров ног трудновато. Более чем странно что в avr такой функции нет, неужели было сложно сделать генератор файла ног.
Я уж совсем забыл, в avr же нет ног у контролера, а у плис они есть

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

Добавлено: Вс окт 23, 2016 15:39:03
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 такой функции нет, неужели было сложно сделать генератор файла ног.
Зачем нужен "генератор файла ног", если все "ноги" уже описаны в файле-описании МК?

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

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

Мужик в издательской сфере или в веб тебе ничего не светит, сиди на неизвестном заводе и делай то что никто не увидит , ковыряя бумажки.
Интернет и так не полезнее забора который отмоют или перекрасят, а подобные статьи и вовсе смотреть не будут, потомучто не видно.
Зачем нужен "генератор файла ног", если все "ноги" уже описаны в файле-описании МК?
да уж незачем, ведь сделать многослойную плату не так уж и сложно на заводе, пусть всякие нубы располагают дорожки в ряд, или вы пророк и знаете где какая нога будет, у меня почемуто так не получается. Я так понял вы програмист и даже платы не делаете

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

Добавлено: Вс окт 23, 2016 17:19:08
SIM31
Alkul писал(а):несколько avr
Какие AVR имеют российские аналоги?

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

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

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

Добавлено: Вс окт 23, 2016 20:18:11
74LS00
Да уж интеграл прославился своими наклейками на чужом, причём доходило до полной наглости.
Вроде как росия купила у шараги на первую букву какуюто устаревшую контролеру в котором даже встроеной памяти нет и вроде как для военных целей её продвигает, цены только космические

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

Добавлено: Вс окт 23, 2016 20:18:37
Alkul
SIM31 писал(а):Какие AVR имеют российские аналоги?
1887ВЕ4У - аналог ATmega8535
1887ВЕ7Т - аналог ATmega128

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

Добавлено: Пн окт 24, 2016 05:43:50
Полосатый
Ну как это к чему фото проводков - там ведь ровно столько проводков, сколько нужно :)

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

Но это лирика, а если кто-то просто не хочет идти к ардуине, тогда ардуина придёт к нему :) Лично меня устраивает. Хочу вот сделать копировщик RFID ключей ... и нафига мне асм?

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

Добавлено: Пн окт 24, 2016 05:56:42
Z_h_e
Alkul писал(а):Я попробую пояснить, почему это глупо с моей точки зрения. Вы, конечно, можете смотреть на это по-иному.
Да, я смотрю по иному. До сего момента, мы обсуждали МК в целом и по сути для единичных устройств, никаких "военных ограничений" не было. Так что я не вижу никакой глупости применять значительно более мощный МК для той же задачи, при том, что если уж он и не дешевле, то и не дороже. А то что у Вас нет времени на изучение других МК, это довод может быть только лично для Вас, но не может являться аргументом подтверждающим Ваше утверждение.

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

Добавлено: Пн окт 24, 2016 16:33:46
74LS00
Полосатый писал(а):Но это лирика, а если кто-то просто не хочет идти к ардуине, тогда ардуина придёт к нему :) Лично меня устраивает. Хочу вот сделать копировщик RFID ключей ... и нафига мне асм?
Если нравится возится с кусками, ковыряйтесь с ардуиной. Под ардуину законченых устройств на эту тему нет.
Тем временем есть хороший копировщик на пиках с закрытыми исходниками, и уже готовится новая версия на более продвинутом пике, автор только в них силён. Тамже обсуждалось всякое и про ардуину, на этом и кончилось. Осталось подобие схемы и кривая прошивка.
Собирать копировщик одного стандарта экономически не выгодно когда можно повторить функциональнее на другой платформе

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

Добавлено: Пн окт 24, 2016 17:42:59
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

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

Пайки, ЛУТы, ПИКи - забыть.

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

Добавлено: Пн окт 24, 2016 21:04:02
Полосатый
Ага, у меня такое же :) За последнюю ссылку спасибо :) Просто пока не до этого в "мягких муравах у нас" ... но как только - так сразу :)