Как стать автором
Обновить

Комментарии 12

По-моему, здесь все-таки уместнее писать «микроконтроллер», а не «микропроцессор» (как-никак, у описываемых в статье штуковин и внешние интерфейсы есть, чего у процессоров нет). А в широком смысле к микропроцессорам и CPU относятся.
Согласен, исправил. Спасибо
Обычно, когда мы измеряем время реакции, нас очень интересует, помимо среднего значения, максимальное, поскольку именно оно дает границы применимости. Хорошо бы дополнить этим параметром.
Дополнил максимальные времена отклика вариантов программ.
Огромное спасибо автору за свежие идеи! Используем micropython для управления промустановками и в 95% случаев его достаточно. Теперь применимость расширим.

Можете поделиться, какие микроконтроллеры с micropython используете и для каких конкретно целей

Пока используем pyboard 1.1 с офиц сайта и стандартный экран к нему. Интерфейс — сенсорный экран + аппаратные кнопки (родной экран очень маленький, палец закрывает элементы интерфейса). Управляем маломощными лабораторными и промышленными установками, на которых хватает шаговых/сервошаговых приводов. Ввод-вывод через Овен-овские блоки (Modbus через RS485).
ох сейчас меня обмажут минусами но я не могу промолчать.

извращаться на змеином с МК это как толкать машину руками и радоваться что она хорошо катится.
не говоря уже о том, что писать что либо на языке где все зависит от табуляции тот еще ссюр.
как язык костылей и поддержки, быстрой автоматизации и внедрения на сервере, для скриптов да идеально. для МК нет.

но меня унесло, это ESP. прекрасный чип от китайских друзей. с подобным количеством кода вы можете заставить тактировать выводной пин с хоть с частотой обработки процессора
про вшитые ШИМ-релизации вообще молчу.
Вы вызываете напрямую регистры и радуетесь ускорению процесса, закрывая глаза на то что в рамках какого-то комплексного кода а не просто оторванная от реальности моргалка пипном в производительности вы потеряете из-за тех петель что навернет интерпритатор переводя с микропитона на машинный.
если уж начали опускаться на низкий уровень и дергать регистры, то делайте это качественно и до конца.
А то, опять пример с машиной, вы завели машину но управляете ей с заднего сиденья шваброй. не спорю это возможно и при достаточны навыках даже заткнете за пояс любого посредственного автомобилиста, но самой печали ситуации это не убавит.
На мой взгляд, если проводить аналогии с автомобилями… то использование MicroPython вместо С/C++/Asm, лучше представлять как использование некой продвинутой системы помощи водителю, а не швабры)

Безусловно, наличие продвинутых систем помощи водителю где-то ограничивает возможности автомобиля, но в ответственные моменты всегда можно находить компромисс путем его отключения и, как вы и заметили, полностью избавиться ухудшения производительности нельзя, как и в современных автомобилях полностью системы помощи отключить бывает проблематично.

Прогресс не стоит на месте, и производительность таких решений часто бывает более чем приемлема, особенно с учетом гораздо большей скорости разработки программ на питоне чем на С/C++/Asm.
Про толкать машину уже написали вам.

писать что либо на языке где все зависит от табуляции тот еще ссюр


А на это скажу, что примерно так же относился к табуляциям питона, пока сам не начал писать на нем. Сейчас, спустя годы, имею стойкое мнение, что это одна из самых ценных находок человечества. Не писать begin/end-ы, а заменить их отступами.

Мой единственный комментарий на Хабре, как я могу проигнорировать комментарии на него))

По питону - я и на момент написания комментария работал с ним. И на сейчас опыт взаимодействия только вырос, ведь это удобный скриптовый язык у которого огромное количество поддерживаемых либ.

В сравнении с башем он просто боженька.

Но синтаксис вызывает у меня негативные эмоции. Благо есть множество разных плагинов под IDE, которые позволяют цветами и всякими метками, видимыми только в IDE размечать код.

Есть пара крупных проектов, где только файлов под 50, а строчек кода овердохрена. Так вот в рамках класса/либы рано или поздно даже разбиение по файлам не помогает от чрезвычайно длинного и нечитаемого кода. Отступы только добавляют места, но при этом никак не позволяют очерчивать края. Что бы понять где конец метода, надо сначала найти его начало и идти 'по линии'.

IDE с плагинами спасают, но для некоторых проектов пришлось захоткеить переключение стилей в IDE что бы была возможность без бесконечных скролов четко увидеть края вложенности и работать с ней.

Еще добавлю что питон довольно лаконичный язык, но в высоту выходит в разы больше чем в ширину из за этого (или городить нечитаемые однострочники). Уже не раз было, что если проект требует сложной архитектуры то выбираем Го, а если мелкая задача то питон.

alter_fritz а вы не могли бы дополнить статью аналогичными тестами на Lua/NodeMCU? Там такого количества возможностей для оптимизации нет. Только просто код и скомпилированный код. Но вроде как код луа гораздо ближе к машинному, интересно, как его быстродействие с uPython будет конкурировать.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации