Ускоряем ARDUINO в 25 раз - управление портами ввода/вывода через регистры (BLINK на чистом С++)

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ก.ย. 2024
  • #arduino, #адруино
    Оптимизируем скетч, пишем на С++ - управляем портами ввода/вывода через регистры.
    За работу порта отвечает 3 регистра:
    DDRx - отвечает за режим работы
    PORTx - управляет состояние пина
    PINx - это непосредственно чтение пина (его текущее состояние)
    где х - это порт B, C или D
    Подробнее информацию по управлению портами ввода/вывода можно ознакомится здесь:
    easyelectronics...
    Купить arduino pro mini дешево : ali.pub/3f6rwg

ความคิดเห็น • 28

  • @GURONTV
    @GURONTV 6 หลายเดือนก่อน +1

    Благодарю, единственный автор кто смог объяснить для моей головы, только с вами понял, кого бы не смотрел на тему регистров, не врубался что да как, а тут сразу понял

  • @ВячеславОсипов-б4ц
    @ВячеславОсипов-б4ц 3 ปีที่แล้ว +3

    Полезное видео для управление портами

  • @ПавелДабинда
    @ПавелДабинда หลายเดือนก่อน +1

    Это круто оно работает, спасибо!!!

  • @criterrors
    @criterrors 2 ปีที่แล้ว +1

    Более низкий уровень влезания в устройство всегда более эффективно работает, как по памяти, так и по скорости, главное иметь ввиду, что накладывается бóльшая ответственность на программиста, дабы не пошло всё не так, как задумывалось. А так - спасибо автору, годный контент.

  • @mysuperpupernick
    @mysuperpupernick 5 ปีที่แล้ว +6

    Все таки надо называть вещи своими именами это называется побитовые операции и побитовый сдвиг

  • @АлександрФилатов-ц7к
    @АлександрФилатов-ц7к 5 ปีที่แล้ว +3

    Спасибо, за видео !!!
    Мне 52 года, электроникой и программированием (для умного дома) начал интересоваться в 50 лет.
    Не думал, что это так захватывает и так интересно...
    Об альтернативе написания кода, тем более, об ускорении, даже не подозревал...
    Ещё раз, СПАСИБО !!!
    Будет ли это работать на ESP8266 NodeMcu v3 ? Если нет, как изменить код под ESP8266 ? Спасибо...

    • @denpar5450
      @denpar5450 5 ปีที่แล้ว

      не будет. фаил avr/io.h для портов микроконтроллеров авр написан.

  • @юрийяковлев-ь4ю
    @юрийяковлев-ь4ю 4 ปีที่แล้ว +3

    Ну вот для кого этот ролик? Название - УСКОРЯЕМ АРДУИНО В 25 РАЗ...., а почему не в 100! Где это показано То что памяти используется почти в 6 раз меньше это да. Побитовые операторы не объяснил - " вот эта запись" что к чему не понятно. Я понимаю о чем речь, а начинающий - он просто скопирует без понятия, что и для чего. И это не С++, а С!

  • @ЮрийШаблевский
    @ЮрийШаблевский 3 หลายเดือนก่อน

    Важно было бы также рассказать начинающим, что такое while(1).

  • @Random-dg6qu
    @Random-dg6qu 20 วันที่ผ่านมา

    Возможно ли чтение состояние всего порта (всех пинов) за раз (не побитно) в одну переменную?

  • @ВладимирН-ц7ы
    @ВладимирН-ц7ы 5 ปีที่แล้ว +1

    Смысл увеличения ? на мигалке не покажешь. Нужен другой пример где нужно сравнить осциллограммы на выводе с digitalwrite и с прямым обращением в порт без задержек. А если показать листинг дизассемблера функции digitalwrite то возможно многие поймут преимущества прямого обращения к регистрам!

  • @АлександрАксенов-п9з
    @АлександрАксенов-п9з 4 ปีที่แล้ว +3

    Надо на ассемблере писать, будет еще быстрее...

    • @СергейС-н2ю
      @СергейС-н2ю 4 ปีที่แล้ว

      Хорошая прога была algorithm builder. Мне она оч нравилась. Графический ассемблер, вот там в тиньку 2313 такие объемы кода затолкать можно было) жалко перестали развивать программу(

  • @alanalanov4125
    @alanalanov4125 2 ปีที่แล้ว

    7:05 Оговорился с пинами...
    надо наоборот - пятый выход, остальные вход.
    Почему ничего не сказал про первые два пина порта D? ... они ж RX, TX...
    Если первый бит в выход определить, то ресивер сериал-порта не фунциклирен...

  • @CtAtUc
    @CtAtUc 4 ปีที่แล้ว +1

    Это не С++ а Си

  • @alanalanov4125
    @alanalanov4125 2 ปีที่แล้ว

    ))) пыжиться с регистрами для "разгона", что бы в следующую строку захреначить DELAY на 1000 миллисекунд...
    )))) и через строку ещё раз.

    • @npoenergokom
      @npoenergokom  2 ปีที่แล้ว

      Так это блинк, можно было и через таймеры задержку сделать

  • @сергейбаглаев-ф3х
    @сергейбаглаев-ф3х 4 ปีที่แล้ว

    Здравствуйте! Нужно установить какую-нибудь библиотеку чтобы использовать команды на си? Не получается запустить if (!(PINB&0b00000001))

    • @pasha8808
      @pasha8808 4 ปีที่แล้ว

      может вторые скобки лишние?

    • @сергейбаглаев-ф3х
      @сергейбаглаев-ф3х 4 ปีที่แล้ว

      @@pasha8808 да все заработало спасибо

  • @Palladln
    @Palladln ปีที่แล้ว

    "Ретурн 0" в конце кода, нафиг не нужен..

  • @zzazivsmazzipapa2984
    @zzazivsmazzipapa2984 5 ปีที่แล้ว

    пожалуйста: Ардуино
    Многоязычное ЖК-меню

  • @СергейС-н2ю
    @СергейС-н2ю 5 ปีที่แล้ว +4

    Если прешел на бинарщину, зачем так расжевывать несколько раз одно и тоже. Контингент намного сузился и основы они знают. Что дальше ассемблер? Там еще меньше и быстрее. В современном мире это уже не актуально, объемы программ намного больше память МК позволяет, зачем мозг взрывать, особенно про новичков. Это их только отпугнет. А в целом молодец, но это для гиков, но нас мало.

    • @npoenergokom
      @npoenergokom  5 ปีที่แล้ว +1

      Все мы когда-то были новичками, и чем дольше у новичков сохраниться привычка писать digitalWrite, тем дольше они будут новичками.
      Ассеблер, это настоящий взрыв мозга - поэтому в такие дебри погружаться совсем не стоит. А на С++ интересно будет новичкам научить кодить... Порог вхождения проще чем переходить на STM

    • @Dialbist
      @Dialbist 5 ปีที่แล้ว +1

      Актуально не актуально, по разному бывает, иногда имеет смысл да и в принципе информация лишней не бывает. Сейчас все выбирают свой путь обучения, не всегда все пошагово двигаются, от простого к сложному. Почему видео должно отпугнуть? это же не курсы, что тут кого-то может отпугнуть, просто для информации видео.

    • @Rashadrus
      @Rashadrus 5 ปีที่แล้ว +1

      Не скажи... я вообще начинал писать с ассемблера под Z80, потом С под Unix на 386...

  • @miplanshet7426
    @miplanshet7426 10 หลายเดือนก่อน

    Как вы задолбали своей музыкой, слушать не возможно.

    • @npoenergokom
      @npoenergokom  10 หลายเดือนก่อน

      Не нравится, можете не слушать.
      Из-за таких неблагодарных, информация становится платной)
      Хочешь без музыки - плати подписку!