Учусь ассемблеру - "микроконтроллеры avr" от белова а.в.

Тема в разделе "Флудилка", создана пользователем OldKryptos, 11 ноя 2021.

  1. Airbus

    Airbus Радиохулиган Модератор

    5 копеек от меня. В 2007 начал изучение AVR с ассемблера. Тини13 Тини2313. Было круто,интересно и полезно. Потом (2013)Мега8/168/328 и Си. Удивился как быстро и просто можно делать сложные вещи. Потом Ардуино с его analogRead/write. Затянуло. Теперь и не помню когда писал на «истинном Си» а на асме лет пять так точно не писал. Стал забывать о чем не сильно жалею. А зачем? Все и так ясно и понятно. LUA пока не освоил нет времени и видимо острой нужды. Но повторюсь что максимально абстрагированный от железа язык это хорошо! Многие ли из Вас имеющие авто знают устройство ДВС и МКП? А оно Вам надо? А ведь раньше изучали и славали экзамен и эти вопросы были в билетах.
     
    Un_ka и ИгорьК нравится это.
  2. ИгорьК

    ИгорьК Гуру

    Горькая, очень горькая правда в том, что когда в голове нет творчества и интересных проектов, начинают страдать ....й
    Или ругать Гайвера, у которого этих проектов немеряно.

    Когда мне надо было решить задачи, что не решались без регистров - регистры были включены.

    Когда мне надо было срочно сделать устройство - я сделал его на JavaScript.

    Все пруфы на этом сайте.
     
    issaom нравится это.
  3. Рокки1945

    Рокки1945 Гуру

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

    Рокки1945 Гуру

    Я же говорил как-то Паровоззу - что есть люди которые любят писать музыку - но не могут петь - а есть которые и то и другое могут.
     
  5. Airbus

    Airbus Радиохулиган Модератор

    У нас говорят так:Можешь летать—летай. Не можешь летать—учи как надо летать. Писать можно и без библиотек если под одно конкретно одно взятое устройство. Библиотеки они же подпрограммы в асме. Библиотеки наСи—более универсальные чем подпрограммы
     
  6. ИгорьК

    ИгорьК Гуру

    Я и библиотеки переписывал, когда было надо - в чем проблема.

    Чет тут мне Lua приписывают, о котором я здесь и слова не сказал.

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

    Чем страшен этот ассемблер в таком ракурсе, как поворачивает ТС. (Причем я ничего против него в целом не имею)
    Тем страшен, что время, потраченное на него, не приносит пользы по факту. Время потрачено -пользы никакой, кроме как на форуме погонять сферических коней в вакууме.
    И начинается "обучение жизни" нубов.
    Отдельные так, видимо, страдают от "зря прожитой (эмбед) жизни", что лезут в каждую тему, включая те, где ни в зуб ногой, и где время ушло далеко вперёд.
     
    KindMan и issaom нравится это.
  7. ИгорьК

    ИгорьК Гуру

    Я в соседней теме объяснял одному товарищу, что палка-копалка в руках дикаря, конечно, эффективнее, чем экскаватор в его же руках.

    Но если ты не знаешь ни экскаватора ни палки, то не факт, что обучение копанию траншей надо начинать с последней.
     
  8. a1000

    a1000 Гуру

    Что-бы избежать непоняток давайте разберёмся в истоках спора. Большенство высказывающихся против ASM, как я понимаю, профессионасьно занимаются програмированием. Для вас это работа. Как писал DI HALT "Ну дык, если Си это тупое ремесло, быстро и результативно, то Ассемблер это филигранное искусство." Я ни в коем случае не хочу ни кого обидеть, да и сам DI HALT дальше пишет, что не все задачи подходят для ASM и что Си удобнее. Заказчику будет глубоко фиолетово на чём вы писали. Ему важен результат, а на языках высокого уровня его достичь и быстрее и легче. Возвращаясь с работы, любому нормальному человеку хочется от неё отдохнуть. А что такое отдых? Это смена рода занятий. Глупо предполагать, что прийдя с работы вы будете пататься что-то сваять на ASM. У меня ситуация другая. Моя работа не связана ни с програмированием ни с электроникой. Для меня ASM это отдых. Если летом есть хозяйство, огород и прочие заботы, то сейчас, когда в в 5 вечера темно, чем заняться? Живу в маленьком пгт., сходить не куда. Не сидеть-же с баклажкой пива у телевизора или пялиться на порнуху в мониторе? Я не преследую практических целей, для меня это развлечение. Получилось запустить на ASM серву, шаговый двигатель, семисегментные индикаторы в динамической индикации и на модуле с ТМ1637, дисплей 16х2 и т.д. Без библиотек, а просто дёргая за ноги микроконтроллера. То, что я смог разобраться с этим в свои 50 лет, для меня маленькая победа. Поэтому не судите меня строго. Мы просто смотрим на этот вопрос с разных сторон.
     
    Un_ka и issaom нравится это.
  9. issaom

    issaom Гуру

    Сейчас для DIY очень много возможностей и придумать интересную практическую идею реализации этих возможностей куда более сложная вещь чем изучение этих самых возможностей.... (Учитывая то что на той-же алишке можно всё купить готовое).... В этом плане с Игорем я согласен - пусть лучше условный овнокод делает чтото интересное и полезное, чем красивый код вообще ничего не делает, (ну разве что даёт возможность Ардуино - Абдуриной называть).
     
    b707 нравится это.
  10. О чем вообще спор?

    "Согасно древнему индусскому сказанию Земля покоится на спине слона, который в свою очередь стоит на спине черепахи. На этом объяснение обрывается - сведений относительно точек опоры черепахи не приводится. В этом сказании при всей нелепости исходной идеи заложена глубокая мысль о том, что всякое последовательное исследование причин физического явления ограничено определенными пределами, зависящими от уровня физических знаний. С некоторого определенного этапа исследования ответить на вопрос "почему" невозможно без получения дальнейшей, более глубокой информации. Это означает, что любое объяснение должно ограничиваться своей "черепахой"".

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

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

    Где-то надо остановиться, вопрос где.

    Можно сказать и так - чтобы кричать "Свободная касса!" знать устойство кассы не обязательно и даже вредно.
     
  11. И вот соображение в пользу ассемблера - изучить его много проще, чем язык высокого уровня. И да, я понимаю, что есть еще вопрос о переводе второго в первое...
     
  12. b707

    b707 Гуру

    не только "сейчас" и не только в DIY. Всегда и во всем творчество ценится выше, чем простое повторение, пусть и на очень высоком уровне.

    Программирование на любом языке - на Асме, на Си. на Яве и на Луа - это в любом случае уже не идея, а реализация. То есть ремесло, а не творчество. Творчество проявляется в том, ЗАЧЕМ вы это программирруете, а не в том, как вы это делаете и на каком языке.

    При строительстве храма доски можно тесать топором, а можно резать на циркулярке... но ни тот ни другой способ не определяет, получится ли у мастера Храм в Кижах или кривой скособоченный сарай
     
    issaom нравится это.
  13. b707

    b707 Гуру

    Не ищите легких путей. Тяжело в учении...
    Научиться работать лопатой куда проще, чем на экскаваторе, только потом вы будете работать ей в разы медленее и это будет тяжелее физически.
    Вот прям точно про ассемблер и Си.

    Потом - Вы не понимаете одной простой вещи - ни одну реальную программу сложнее мигания светодиодом или переключения пары ног МК вам на ассемблере не написать. Это точно так же как не выкопать котлован под фундамент лопатой вручную.

    Для прикладного программиста знание Си - абсолютно обязательно., А асм не более как полезное дополнение, без которого можно обойтись.В современных МК ассемблер вообще не используется.На асм пишут под древний металлолом типа самых младших авр. Уже в СТМ32 или ЕСП вы в программах нигде не увидите даже самых маленьких ассемблерных вставок. Они просто не нужны.
    Так что ваше изречение, что я процитировал - абсолютно бессмысленное. Изучение асма без Си бесполезное занятие. Си учить придется в любом случае.
     
    Последнее редактирование: 13 ноя 2021
    issaom нравится это.
  14. parovoZZ

    parovoZZ Гуру

    ты точно уверен в своих словах? А если я тебе скажу, что это не всегда так и на один байт запроса slave устройство может отдавать разное количество информации?
     
  15. parovoZZ

    parovoZZ Гуру

    а просмотр ящика приносит какую-то пользу? А стояние в пробках приносит какую-то пользу? Так можно рассуждать бесконечно. Но для DIY подобные рассуждения лишены смысла, как и лишено смысла само занятие DIY.
     
  16. issaom

    issaom Гуру

    Раз уж всё равно флудим, мне интересно как на asm для avr задачи типа корней, синусов и прочего матана решаются...
     
  17. parovoZZ

    parovoZZ Гуру

    Есть заказчики (а таких львиная часть, ибо они платят за это огромные деньги), которым далеко не фиолетово.
     
  18. b707

    b707 Гуру

    честно говоря, такие задачи вообще крайне редко попадаются при программировании МК.
    Корни и синусы на тини13 - это треш :) Что на асме, что на Си :)
    А на более серьезных контроллерах есть отдельный модуль для математических вычислений. Но на тех МК, как я уже писал, на асме никто не пишет
     
  19. parovoZZ

    parovoZZ Гуру

    ровно тем же способом, что и на си.
    Сперва математики придумывают алгоритм. Затем этот алгоритм перекладывается на железо с учётом возможностей железа (прежде всего, его ассемблера. И здесь никак нельзя забывать, что RISC процессоры многие ассемблеры эмулируют). Рекомендую к прочтению "Алгоритмические трюки для программистов". Но прежде булеву алгебру необходимо выучить на зубок.
     
  20. parovoZZ

    parovoZZ Гуру

    ещё как и пишут. Именно по ассемблеру можно оценить надёжность критических секций.
    Очень плохая позиция судить об отрасли по себе.