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

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 มิ.ย. 2019
  • #arduino, #адруино
    Оптимизируем скетч, пишем на С++ - управляем портами ввода/вывода через регистры.
    За работу порта отвечает 3 регистра:
    DDRx - отвечает за режим работы
    PORTx - управляет состояние пина
    PINx - это непосредственно чтение пина (его текущее состояние)
    где х - это порт B, C или D
    Подробнее информацию по управлению портами ввода/вывода можно ознакомится здесь:
    easyelectronics.ru/avr-uchebny...
    Купить arduino pro mini дешево : ali.pub/3f6rwg
  • วิทยาศาสตร์และเทคโนโลยี

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

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

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

  • @user-eg1nt5qt2d
    @user-eg1nt5qt2d 3 ปีที่แล้ว +2

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

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

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

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

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

  • @user-ni5uf3jr5j
    @user-ni5uf3jr5j 5 ปีที่แล้ว +3

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

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

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

  • @user-jn4oy9yr3g
    @user-jn4oy9yr3g 4 ปีที่แล้ว +3

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

    • @user-iy9lb5jk6b
      @user-iy9lb5jk6b 4 ปีที่แล้ว

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

  • @user-wq4ft4gy2l
    @user-wq4ft4gy2l 4 ปีที่แล้ว

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

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

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

    • @user-wq4ft4gy2l
      @user-wq4ft4gy2l 3 ปีที่แล้ว

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

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

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

  • @user-vb4pj2so5o
    @user-vb4pj2so5o 5 ปีที่แล้ว +1

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

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

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

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

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

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

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

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

    Это не С++ а Си

  • @user-jv6pb8fd7d
    @user-jv6pb8fd7d 4 ปีที่แล้ว +3

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

  • @Palladln
    @Palladln 11 หลายเดือนก่อน

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

  • @user-iy9lb5jk6b
    @user-iy9lb5jk6b 5 ปีที่แล้ว +4

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

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

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

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

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

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

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

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

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

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

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