Оптимизация кода Ардуино для начинающих программирование и ускорение работы
Vložit
- čas přidán 29. 01. 2022
- Оптимизация кода Ардуино для начинающих. Программирование и ускорение работы. Изменение кода и доступ к регистрам и портам. Продвинутый язык программирования ардуино.
Скетчи используемые в видео можно скачать на сайте "Ардуино для начинающих".
arduino-kid.ru/blog/optimizaci...
Помочь в развитии канала, и на покупку новых модулей и датчиков yoomoney.ru/to/410011924549016
Официальный сайт arduino-kid.ru
Группа в контакте club196958636
Почта arduino-kid@yandex.ru
Подпишитесь на канал
ссылка на канал / Ардуинодляначинающих
Теги:
#ардуино #arduino #урокиардуино #ардуинодляначинающих #ардуиноуроки - Věda a technologie
Ссылки на продавцов где есть модули применяемые в примерах.
Arduino NANO - alii.pub/699fxy
NodeMcu V3 - alii.pub/699ich
Модуль RFID RC522 - alii.pub/69dct2
ЖК-дисплей 1602 и 2004 - alii.pub/699yzr
Модуль часов DS3231 - alii.pub/698ydt
Спасибо, всё очень доступно и понятно
Отлично! Ясно, просто и доходчиво. Прошу вас продолжать.
Автор! Ждём продолжение, обязательно!
Классно и понятно, большое спасибо, обязательно продолжайте в том же духе.
Ждём продолжения. Очень интересно.
отличный урок. доходчиво, понятно. урок от профессионала.
Полезное и нужное видео. .....Жду продолжения.
Будет
Высший пилотаж. Браво, автор!
Супер, як завжди!
Спасибо, очень информативно! Хотел попросить Вас сделать серию видео про организацию шины данных по интерфейсам.
Спасибо, регистровый метод очень полезен, очень хочется узнать больше!
Очень хорошая подача. Ждём развития канала и живого голоса автора😊
Очень полезно.
Очень правильно , что затронули эту тему , но замечу : что я бы никогда не понял программирование микроконтроллеров без традиционного вайрлинга , теперь же когда знаешь и понимаешь как изобретать новые нужные алгоритмы (реакции на входящие данные) можно вникать в низкоуровневое программирования для увеличения функционала маломощного микроконтроллера . Ещё очень жду Ваших исследований с объяснениеми в ООП.
Огромное СПАСИБО !!!
Коротко, Ёмко. Вот ответ 👍
Жду продолжения)
Полезно. Апнул мой скил :) благодырочка!
Сразу лайк 👍
А посмотреть))) Ещё надо было написать ПЕРВЫЙ!!!
Сразу и посмотрел спасибо
Здемс продолжения!)
Очень доходчиво объясняете) с нетерпением жду следующее видео. Есть какраз один проект который хочу оптимизировать)
А есть какие нибудь примеры с работой олед дисплея напряму? Буду очень благодарен, и спасибо за видео.
Одназначно намного лучше с регистрами и портами и понятне чем дижиталами и аналог райтами спасибо вам большое и если не забыли то прерывание тоже покажите 👍😉
А чем именно лучше? Оперировать магическими числами в регистрах? Тогда вообще лучше писать на асме. Насчет прерываний согласен но причем здесь Ардуино? Пишите на голой Меге
Очень круто! Будет продолжение ?
Нет. Я больше этим не занимаюсь.
@@arduino2000 жаль (
Пробовал делать blink с int main(), но почему-то цикл while(1) все ровно ардуино упорно выполняет один раз. Версия ардуино 1.8.19.
Заинтересовала работа с регистрами
Скоро будет новое видео про регистры
Хорошо бы предупредить начинающих , что называть переменные можно длинными-понятными именами , так как увеличенная длинв имени переменной не увеличивает размер кода .
а как бы это дело использовать с классами, например некоторый класс требует на вход числовой номер пина в виде integer например,
и таких классов много, переменных куча.
копирований памяти тоже куча, и вот как передать например в функцию номер пина как номера бита.
т.е. например класс требует int PinX, а мы ему хотим не байт и номер бита передать, как вот здесь быть? как передать нужные порт и регистр этого порта?
если мы хотим к примеру некую универсальность, у нас напрмиер класс может работать и на аналоговых и на цифровых пинах, как передать что 5 байт на порту C например.
какое объявление должно быть?
А можно комментарии, которые по сериал порту отображаются, не закоментировать вручную, а в условные конструкции ставить #if #endif (условная компиляция). Так делают для отладки скетча.
Можно. Но я подумал, что пока рано. В следующих видео хотел рассказать
Вопрос: через digitalwrite - мы можем изменять по отдельности состоянием разных выходов, через регистр так же не получится?
Например: приходит сигнал (например с пульта) в хай 8й выход, выполняется: PORTB = 0b00000001; затем приходит команда в хай 9й выполняется PORTB = 0b00000010; а нам 8й ненужно было в лоу переводить.
Можно управлять каждым битом порта в отдельности
PORTD &= ~(1
иными словами какой тип имеют DDRB DDRС DDRD и другие , и как их передать в функцию к примеру.
А с вами можно как нибудь связаться?
По почте
Я в шоке, от души!
Помнится, мы в 90-е и 00-е так же коды страниц сайта оптимизировали - вплоть до килобайта. Потом все это вдруг резко стало не нужно
Я помню что картинка не должна была весить больше 15-20 килобайт. И сайты я писал в блокноте. Вот было время.
@@arduino2000 ага, я целый год потратил на изучение HTML :))
@@TheRajvo а я до сих пор могу любую таблицу на HTML написать, с любыми ячейками и вложенностью )))
Возврат к чистому Си или к асму вряд ли имеет смысл. Развитие идет выпуском более мощных микроконтроллеров и менее привязаных к железу языков програмирования но не наоборот
Так никто и не говорит о преждевременной оптимизации - можно прототипировать и работать на высокоуровневых языках, а оптимизировать лишь горячий код и высоконагруженные части системы.
Но лично я бы хотел, чтобы мой девайс работал быстрее в 5 раз чем у конкурента)
Глупый наверное вопрос но как долго проработает ардуино на миллис? Как ни крути это ведь процесс, но скорее всего вопрос глупый
На миллис 49 дней, на микрос 70 минут. У меня есть видео где я про это рассказывал сколько и почему так
@@arduino2000 я не про это, миллис по переполнению сбросится и по новой пойдёт отсчёт, я про вообще жизнь микроконтроллера , в том смысле что к примеру у флешки есть 200000 циклов перезаписи и так далее
@@jalokin84 я свою нану использую уже пару лет. И в день прошиваю раз по 20-40, и ничего работает как часы.
Работает 4 года онлайн без выключения
@@jalokin84 следующее видео будет про использование программы Proteus. В ней можно собрать и протестировать коде без Ардуино
ну тоесть не пишите на ардуино, а пишите на С+ )))
Всё зависит от желания и необходимости. Если скорость и размер не имеют значения, то можно писать как угодно. Я например тоже редко когда пишу оптимальный код. Только когда очень прижмёт. А так- сплошные delay(100000)
Пробовал делать blink с int main(), но почему-то цикл while(1) все ровно ардуино упорно выполняет один раз. Версия ардуино 1.8.19.