Ускоряем ARDUINO в 25 раз - управление портами ввода/вывода через регистры (BLINK на чистом С++)
ฝัง
- เผยแพร่เมื่อ 24 ก.ย. 2024
- #arduino, #адруино
Оптимизируем скетч, пишем на С++ - управляем портами ввода/вывода через регистры.
За работу порта отвечает 3 регистра:
DDRx - отвечает за режим работы
PORTx - управляет состояние пина
PINx - это непосредственно чтение пина (его текущее состояние)
где х - это порт B, C или D
Подробнее информацию по управлению портами ввода/вывода можно ознакомится здесь:
easyelectronics...
Купить arduino pro mini дешево : ali.pub/3f6rwg
Благодарю, единственный автор кто смог объяснить для моей головы, только с вами понял, кого бы не смотрел на тему регистров, не врубался что да как, а тут сразу понял
Полезное видео для управление портами
Это круто оно работает, спасибо!!!
Более низкий уровень влезания в устройство всегда более эффективно работает, как по памяти, так и по скорости, главное иметь ввиду, что накладывается бóльшая ответственность на программиста, дабы не пошло всё не так, как задумывалось. А так - спасибо автору, годный контент.
Все таки надо называть вещи своими именами это называется побитовые операции и побитовый сдвиг
Спасибо, за видео !!!
Мне 52 года, электроникой и программированием (для умного дома) начал интересоваться в 50 лет.
Не думал, что это так захватывает и так интересно...
Об альтернативе написания кода, тем более, об ускорении, даже не подозревал...
Ещё раз, СПАСИБО !!!
Будет ли это работать на ESP8266 NodeMcu v3 ? Если нет, как изменить код под ESP8266 ? Спасибо...
не будет. фаил avr/io.h для портов микроконтроллеров авр написан.
Ну вот для кого этот ролик? Название - УСКОРЯЕМ АРДУИНО В 25 РАЗ...., а почему не в 100! Где это показано То что памяти используется почти в 6 раз меньше это да. Побитовые операторы не объяснил - " вот эта запись" что к чему не понятно. Я понимаю о чем речь, а начинающий - он просто скопирует без понятия, что и для чего. И это не С++, а С!
Важно было бы также рассказать начинающим, что такое while(1).
Возможно ли чтение состояние всего порта (всех пинов) за раз (не побитно) в одну переменную?
Смысл увеличения ? на мигалке не покажешь. Нужен другой пример где нужно сравнить осциллограммы на выводе с digitalwrite и с прямым обращением в порт без задержек. А если показать листинг дизассемблера функции digitalwrite то возможно многие поймут преимущества прямого обращения к регистрам!
Надо на ассемблере писать, будет еще быстрее...
Хорошая прога была algorithm builder. Мне она оч нравилась. Графический ассемблер, вот там в тиньку 2313 такие объемы кода затолкать можно было) жалко перестали развивать программу(
7:05 Оговорился с пинами...
надо наоборот - пятый выход, остальные вход.
Почему ничего не сказал про первые два пина порта D? ... они ж RX, TX...
Если первый бит в выход определить, то ресивер сериал-порта не фунциклирен...
Это не С++ а Си
))) пыжиться с регистрами для "разгона", что бы в следующую строку захреначить DELAY на 1000 миллисекунд...
)))) и через строку ещё раз.
Так это блинк, можно было и через таймеры задержку сделать
Здравствуйте! Нужно установить какую-нибудь библиотеку чтобы использовать команды на си? Не получается запустить if (!(PINB&0b00000001))
может вторые скобки лишние?
@@pasha8808 да все заработало спасибо
"Ретурн 0" в конце кода, нафиг не нужен..
пожалуйста: Ардуино
Многоязычное ЖК-меню
Если прешел на бинарщину, зачем так расжевывать несколько раз одно и тоже. Контингент намного сузился и основы они знают. Что дальше ассемблер? Там еще меньше и быстрее. В современном мире это уже не актуально, объемы программ намного больше память МК позволяет, зачем мозг взрывать, особенно про новичков. Это их только отпугнет. А в целом молодец, но это для гиков, но нас мало.
Все мы когда-то были новичками, и чем дольше у новичков сохраниться привычка писать digitalWrite, тем дольше они будут новичками.
Ассеблер, это настоящий взрыв мозга - поэтому в такие дебри погружаться совсем не стоит. А на С++ интересно будет новичкам научить кодить... Порог вхождения проще чем переходить на STM
Актуально не актуально, по разному бывает, иногда имеет смысл да и в принципе информация лишней не бывает. Сейчас все выбирают свой путь обучения, не всегда все пошагово двигаются, от простого к сложному. Почему видео должно отпугнуть? это же не курсы, что тут кого-то может отпугнуть, просто для информации видео.
Не скажи... я вообще начинал писать с ассемблера под Z80, потом С под Unix на 386...
Как вы задолбали своей музыкой, слушать не возможно.
Не нравится, можете не слушать.
Из-за таких неблагодарных, информация становится платной)
Хочешь без музыки - плати подписку!