Перевод целого в байты и обратно

Тема в разделе "Arduino & Shields", создана пользователем Михаил123, 3 сен 2020.

  1. Igor68

    Igor68 Гуру

    Бывают "узкие" места... особенно в прерываниях. Как пример для ARM7 в Keil uVision вход в прерывание по умолчанию в файле на ассемблере. И переключение контекста (в режиме Superuser/System) удобнее делать именно там. Вы только представьте к примеру делается два цикла типа loop как в ардуино, а в прерывании по таймеру будет переключаться работа в них. Там как раз надо педалировать с указателем стека, счетчиком команд и др. Это всё надо сохранить в озу и извлечь это же, но для другого loop в эти регистры, потом переключить режим ядра при выходе. Так сказать многозадачность... и даже без применения RTOS. В ARM свой набор регистров для разных режимов (ряд регистров повторяются во всех режимах - пересекаются). Да и много ещё где важен именно ассемблер. В конечном счёте только он и есть язык самого процессора... и никто иной. Си только для удобства, чтобы глубоко не вникать в архитектуру машины. Сам лично (я про себя) стараюсь не вникать в ассемблер, но только для 51-го ядра (кстати AVR отношу к нему, хоть это и не так)... не знаю почему но 51-е недолюбливаю. x86 изучать не планирую - нет необходимости пока... хоть и надо сваять "прошивку" тестовую для 186 ядра (на два ПЗУ - чётная и нечётная) - надо восстановить железку.
    Так что ассемблер очень и очень важен... и даже важнее сем Си (по крайней мере для меня). Что уж говорить про другие языки... я их таковыми не считаю(да простят меня программисты).
     
    parovoZZ нравится это.
  2. b707

    b707 Гуру

  3. parovoZZ

    parovoZZ Гуру

    Сейчас пишу код под MSP430FR. Так вот в нём можно уйти в сон и никогда из него не выходить. Архитектура MSP430 организована так, что заходя в прерывание, ядро подключает все необходимые тактовые сигналы (а их там очень много) к используемой периферии, выполняет код в обработчике прерывания. Выходя из обработчика прерывания снова засыпает и глушит неиспользуемые генераторы. А чтобы выйти из такого каматоза, необходимо вручную сменить режим работы. После AVR, ARM несколько не привычно.
    У такого подхода есть и недостаток - тактовый сигнал будет тактировать абсолютно все устройства, которые к нему сейчас подключены. Даже те, которые в данный момент и не нужны.
     
    Igor68 нравится это.
  4. ИгорьК

    ИгорьК Оракул Модератор

    Все просто. Чел привык видеть МК через ассемблер. Для него Си - тупая надстройка над ним.
    Ничего не напоминает?
     
  5. akl

    akl Гуру

    это потому что он школу адруино не прошел
     
  6. b707

    b707 Гуру

    нет, а должно?

    самое интересное тут не то, как он видит МК - а то что он не исправил глупость в статье, даже после того как ему указали на нее в комментах. Я для себя галочку поставил...
     
  7. ИгорьК

    ИгорьК Оракул Модератор

    Должно. Должно напоминать высказывания типа "этот язык ...вно, ибо не работает с ...." Это привычное видение по принципу "родина, сынок" - все языки сакс, кроме... Это я чтобы никого не обидеть.

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

    Но тут возникает диссонанс - начинать писать новое или править старое. Для тебя это уже пройденный этап, новое - интереснее. Так что я ДиХальта вполне понимаю.

    Вот пример где много чуши: http://forum.amperka.ru/threads/urm37-побеждаем-датчик.2692/

    Переписывать не буду - ставьте галочки, не ставьте.
     
  8. b707

    b707 Гуру

    хм, о каком сайте речь?
     
  9. ИгорьК

    ИгорьК Оракул Модератор

    Ваш адрес электронной сидит не на гугле, явно домен зарегистрирован.
    Но если я в этом ошибаюсь, все остальное это не меняет.
     
  10. b707

    b707 Гуру

    Ах. это :) даже два домена :)
    Когда-то были идеи замутить некий проект, но у меня слишком мало усидчивости для такого. В итоге на этих двух доменах у меня просто куча адресов почты для разных типов переписки...
     
  11. ИгорьК

    ИгорьК Оракул Модератор

    У меня тоже есть идея замутить некий проект в стиле Амперки (ибо лох - не мамонт), но не хватает видения и знаний, да и объем немаленький, сам не потяну.
     
  12. Igor68

    Igor68 Гуру

    Ой Си это надстройка. Ой. А я думал философия и/или психология и пр. Если программы ваять для политекономии... наверное и язык будет под это заточен. Не так ли? Может это Lua... хотя нет он тоже надстройка гад Си, который надстройка над Ассемблер, который надстройка над просто бинарным кодом. Аааааа это HTML! Ой... а это только формат документа. Вот блин... Ну тогда Питон... ой а он то же надстройка над интерпрететором, который надсьолйка над Си, который надстройка над Ассеблер, который надстройка над бинарным кодом...
    Что... даже извинений мало (да простят меня программисты!)... и надо читать пародию на "Дом который построил трест"?
     
  13. ИгорьК

    ИгорьК Оракул Модератор

    Главное, вы суть ухватили. Не все считают, что указатели - достоинство Си и пишут другие языки, вместо траты времени на "в наше время указатели были точнее". :)
     
  14. parovoZZ

    parovoZZ Гуру

    Писать-то они могут, вот только вдруг выясняется, что для embedded программирования придумано всего два компилятора: Си-компилятор и инструкций ассемблера.
    Можно даже и свой компилятор выдумать, но даже Atmel не стал этого делать, а взял стандартный GCC, напихал кучу костылей (GCC разработан под архитектуру фон Неймана, а AVR - это гарвардская архитектура) и таким образом мы имеем AVRGCC.
     
  15. b707

    b707 Гуру

    речь не о тех, кто "пишет языки", а о новичках. которые только вступают на этот путь. Если человек не знает ни одного ЯВУ и только примеривается. с чего начать - то в случае программирования микроконтроллеров ему несомненно стоит начинать с Си, а не с какого-нить микро-питона, JS или луа, против которых я в принципе ничего не имею - но на которых пишет для ардуины полтора человека... по крайней мере на этом форуме :)
     
  16. ИгорьК

    ИгорьК Оракул Модератор

    Ну это лишь подтверждает гениальное наблюдение, что кругом одни дураки :)

    И да и нет. Опираться могу лишь на свой опыт. Сбежал с Си и не помню, чтобы не смог решить какую-то СВОЮ задачу.
    Более того, есть пару проектов (естественно, не очередная метеостанция), реализации которых на Си так и не встретил. (То есть никак не скопипастить)

    А пишут на этом форуме полтора человека? Так их в целом тут пишут не более десятка, так что полтора - это очень много.
     
    issaom нравится это.
  17. b707

    b707 Гуру

    так я в вас и не сомневаюсь :) И в себе, например. тоже - может я когда-нить вдруг возьмусь изучать Луа - у меня хобби изучать бесполезные вещи, которые потом. вдруг, нередко оказываются весьма интересными и нужными.
    Но это - потом. А первым языком при изучении МК должен быть Си. Потом - что угодно -Луа. питон, ява...
    В принципе, как я уже многократно писал - если умеешь ПРОГРАММИРОВАТЬ, конкретный язык значения не имеет
     
    Igor68 нравится это.
  18. ИгорьК

    ИгорьК Оракул Модератор

    То время, что надо потратить на Си, чтобы научиться написать аналогичный код:
    Код ( (Unknown Language)):
    mydata = {
        one = 1,
        two = "two",
        three = true
    }
    table.foreach(mydata, print)
    можно потратить на изучение чего-то не менее полезного, благо всяких протоколов, схемотехники и МС для изучения хватает.
     
  19. ИгорьК

    ИгорьК Оракул Модератор

    А в целом, проблема не в языке, а в учениках - хоть чему-нибудь бы учились.
     
  20. b707

    b707 Гуру

    а время. потраченное на изучение "всяких протоколов, схемотехники и МС " можно было потратить на изучение бальных танцев или виндсерфинга... а по факту не изучено ни того, ни другого. а все время ушло на просмотр сериалов по телевизору :)

    всегда приходится выбирать.
     
    ИгорьК нравится это.