We accelerate Arduino more than 20 times!

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 พ.ย. 2024

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

  • @AlexLink-rb5by
    @AlexLink-rb5by 7 ปีที่แล้ว +55

    в начале ролика тот кварц не для меги а для эмулятора порта.. для меги .. он планарный и размер примерно 1*2мм

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว +3

      Да, спутал.

    • @AlexLink-rb5by
      @AlexLink-rb5by 7 ปีที่แล้ว +5

      да всё норм .. я боялся ты его перепаивать будешь и пытаться разогнать ;)))

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      :))

    • @ВалСіт
      @ВалСіт 7 ปีที่แล้ว +2

      У автора этого комента было замечено двух(!!!) ядерное ардуино , но он решил скрыть это туманом молчания . может вы на видео покажете реализацию этого проекта ?

  • @muctex
    @muctex 7 ปีที่แล้ว +116

    Я не гуру и не спец но уже накипело! Автор, попробуй перед тем как снимать новый ролик написать, хотя бы виде заметок, сценарий. Попробуй сократить время ролика но сделать его более содержательным, сейчас много "воды". И я умоляю проверяй информацию которую излагаешь !!! Много неточностей и дизинформации что может навредить начинающим и самому тебе.

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว +1

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

    • @muctex
      @muctex 7 ปีที่แล้ว +1

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

    • @muctex
      @muctex 7 ปีที่แล้ว +10

      Плюс какой смыслы из arduino IDE писать на чистом avr gcc который так тщательно инкапсулировали (упростили) ребята из компании для начинающих? AVR Studio бесплатна и там гораздо удобнее писать на чистом си если уже так хочется "ускорить" контролер и конечно же есть еще асемблер!!! Можно начинающих путать до опупения =)

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว +2

      Да, про кварц, это я потом уже понял что не туда показывал, но ведь все равно часто та та же - 16 мГц.
      Да, все верно, AVR Studio хорошая вещь. С ассемблером и я часто в ступор впадал :)

    • @katetometr
      @katetometr 7 ปีที่แล้ว

      на последних минутах автор озвучил точно такие же мьісли.

  • @VadRov
    @VadRov 5 ปีที่แล้ว +15

    Если есть задача существенно повысить производительность и снизить объем памяти, то только ассемблер. Но есть ощутимый минус: потеря совместимости с другими контроллерами. Именно поэтому и используют всякие IDE. Поэтому ассемблер пойдет для специфичных задач, когда код надо уместить в условиях ограниченного размера памяти, и при этом важна производительность. Для коммерческого использования, например, или в самоделках из разряда "а вам слабо! ". В изучении ассемблера нет ничего сложного. В далеком 1993 году, будучи учеником 8-го класса, я легко освоил ассемблер такого мамонта, как Z-80. Брат, в то время студент университета, подарил мне спектрум совместимый компьютер Sintez-2 (48 кб). Начал с бейсика, но быстро уперся в его ограниченность и медлительность. Поэтому решил перейти на ассемблер. Первая настольная книга "Программирование в машинных кодах. ZX-Spectrum" (перевод с английского). Писал на ассемблере текстовые, музыкальные редакторы, игры (тетрис, L-club, поле чудес и т.п.). Параллельно с изучением ассемблера пришлось изучать и аппаратную часть компа (организация прерываний, порты В/В и т.п.). К примеру, тетрис занимал где-то 1 кб памяти, с учетом текстовой части и музыкальных эффектов. Где-то должны быть кассеты в доме у родителей с записями программ. Библиотека книг точно сохранилась. Эх.... Ностальгия!!! Делал кнопку турбо (7МГц) на триггере К555ТМ2. Расширил память до 128 КБ. Сам комп был подарен племяннику при переходе на IBM, и благополучно почил на свалке по причине полной и безвозвратной потери работоспособности)) (был разломан в хлам).
    Смотрю иногда видео про Ардуино и хочется "встряхнуть стариной" )) Увлекательная это штука. Главное, сейчас все доступно. А раньше приходилось выбираться в город на радиорынок, покупать микрухи непонятного качества. Помню, попадал пару раз с памятью на РУ5... Эх, были времена! ))

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

      О да. Я вас понимаю. Я начинающий, только вхожу в эту сферу. Но все равно это так увлекательно самому что-то создать и видеть как это работает!!!
      Ассемблер вещь крутая. Но в современном мире его будут изучать только те, кто работают в этой сфере. Обычные пользователи не будут его изучать в силу сложности вхождения. Слишком много читать, ещё и даташиты на английском... А на Ардуино можно научиться программировать за час...
      Я не говорю что ассемблер плох. Наоборот, это крутая вещь. Но его сейчас никто не изучает.

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

      До сих пор в шкафу лежит Sintez . В своё время , что бы его купить , пришлось откладывать деньги больше полугода .

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

      @@victortremov9584 , брат брал Синтез с рук у "зажиточного" одногруппника, когда тот на Амигу переходил. Ценник сейчас и не вспомню, но если мама не ругалась, то было недорого)). Надо бы у брата спросить, вспомнить молодость))

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

      Да парни, я вам покажусь мамонтом)) - мы разрабатывали и кодили аж в середине 90-х для i8081 8битного, и это была серийная продукция))

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

      @@KirillVotrin , угу - чистый asm, никакого Си у нас на контроллеры тогда не было. На си писал для АТ, и без всяких плюсплюсов. Но я больше железо и общее сист.построение.

  • @NikolayBalin
    @NikolayBalin 7 ปีที่แล้ว +14

    Прелесть Arduino IDE в простоте и быстроте написания кода, "с" все немного усложняет, но тем не менее видео очень познавательно, спасибо за труды.

    • @ИраФомченко
      @ИраФомченко 2 ปีที่แล้ว

      Какая же прелесть? Вместо короткой команды PIN писать непонятную DigitalRead?

    • @ЮрийСамофал-ю9ь
      @ЮрийСамофал-ю9ь 2 ปีที่แล้ว +2

      Не си усложняет, а arduino IDE упрощает. Просто в ней есть библиотека и всё. Кто тебе мешает написать раз:
      unsigned char WriteBit(unsigned char In, unsigned char BitNum, unsigned char Val){
      return (Val==0) ? In&(~(1

    • @ЮрийСамофал-ю9ь
      @ЮрийСамофал-ю9ь 2 ปีที่แล้ว +2

      Дошли!!!)
      void WriteBit(unsigned char *In, unsigned char BitNum, unsigned char Val){
      *In = (Val==0) ? *In&(~(1

    • @ГеннадийГром-в8ю
      @ГеннадийГром-в8ю 2 ปีที่แล้ว

      @@ЮрийСамофал-ю9ь кста, обращаться к переменной одновременно как к байту, так и побитно можно при помощи вот такой конструкции:
      union { struct flag_bit { int f0 : 1; int f1 : 1; int f2 : 1; int f3 : 1; int f4 : 1; int f5 : 1; int f6 : 1; int f7 : 1; } b; byte in; } in_f;
      таким образом написав:
      in_f.in = 55; // мы записываем в байт
      а прописывая:
      in_f.b.f0 = 1; in_f.b.f5 = 0; //мы работаем с битовыми полями нашей байтовой переменной in_f!
      Очень легко, просто и наглядно, причём компилятор всё делает чисто и красиво, я в асм'овский код заглядывал! 👍😁 Особенно мне это помогло, когда на плате ввода/вывода 3х8 все входы/выходы "территориально" перепутаны:
      union { struct in_bit { int d17 : 1; int d19 : 1; int d21 : 1; int d23 : 1; int d22 : 1; int d20 : 1; int d18 : 1; int d16 : 1; int d8 : 1; int d6 : 1; int d2 : 1; int d4 : 1; int d0 : 1; int d1 : 1; int d3 : 1; int d5 : 1; int d11 : 1; int d14 : 1; int d13 : 1; int d15 : 1; int d12 : 1; int d9 : 1; int d10 : 1; int d7 : 1; } i; struct in_byte { byte i0, i1, i2; } a; } in, ev;
      Ну-у, разводка платы было такая, что уж тут поделать! 🤔 А так хоть какая-то "понятность" в представлении сигналов и переносимости на другую плату была! Кста, так можно и в Ардуине порты описать! 👍😁🤪

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

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

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

    Давно мечтал это понять. Спасибо, автор! )))

  • @zonderdk
    @zonderdk 3 ปีที่แล้ว +2

    Расходимся, никто ничего не ускоряет. Просто подход к проблеме другой. Да, обращение к регистрам работает гораздо быстрее, и если вам нужно быстро дёрнуть ногой то это отлично работает. Но теряется удобство работы именно с ардуино. А ускорить кварц можно без особых проблем. Всего-то нужно переопроеделить дерективу F_CPU указав новую частоту кварца. Это можно сделать в файле описания доступных плат. Лично ставил кварц 40МГц. И всё работает, но возможно что заведётся не на каждом камне. Больше 40 ставить нет смысла, внутренний генератор больше не разгоняется. Но можно использовать внешний генератор частоты. Если переопределить фьюз биты. Пруфов негде не видел, но теоретически возможно.

    • @ИраФомченко
      @ИраФомченко 2 ปีที่แล้ว

      Как раз работать в Ардуино менее всего удобно.
      Я работаю в разных IDE и Ардуино самый худший.

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

      @@ИраФомченко Я имел ввиду не само IDE, а фреймворк Ардуино. Он доступен например в PlatformIO. Довольно удобно использовать Ардуино код для быстрого написания программы. Куча встроенных библиотек. Типа матх и сериал. Потом после проверки идеи можно переписать код на регистры, для ускорения быстродействия.

  • @alexzshow6314
    @alexzshow6314 7 ปีที่แล้ว +2

    Отлично, как раз искал ускорение и сжатие объема кода в ардуино. Очень интересное видео

  • @Gromo_Z
    @Gromo_Z 7 ปีที่แล้ว +6

    Ниже уже написали-смысл тогда кодит в ардуино иде-берем атмел студию или блокнот и начинаем писать как раньше напрямую к портам обращаясь и перефирии.

  • @SWS-LINK
    @SWS-LINK 6 ปีที่แล้ว +10

    Вся прелесть и сила урдуинки в том, что ее код легко читаем не программистами -). И переносим. А если кодить такой тарабарщиной, то можно и поинтереснее железо найти -).

    • @cutefoxRC
      @cutefoxRC 4 ปีที่แล้ว +3

      Что мешает написать свои собственные функции и туда засунуть эти непонятные каракули? Будет и простота чтения/писания и скорость.

    • @МовсарХалахоев
      @МовсарХалахоев 4 ปีที่แล้ว

      Насчёт "поинтереснее железо": подскажите, пожалуйста, в каком направлении копать? Где можно почитать что-нибудь на эту тему? Спасибо :)

    • @SWS-LINK
      @SWS-LINK 4 ปีที่แล้ว +3

      @@МовсарХалахоев stm32 как вариант -) цена та же, возможностей больше.

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

      @@progressivereloaders92 Это не Си++. Это Си

    • @НикичРешетников
      @НикичРешетников 3 ปีที่แล้ว +1

      @@cutefoxRC Я в Atmel studio когда кодю, как раз такие функции типо ардуиновских Digital write Digital read Или даже Аnalog write, analog read и прописываю в виде макросов, обращаясь внутри них напрямую к биту порта или к регистру результатаАЦП илиТаймера в режиме Шим, вернее один раз прописал и потом просто копирую из проэкта в проэкт в заголовочный файл: Получается и Быстрое выполнение команд и одновременно их читабельность:))

  • @kirillkv90
    @kirillkv90 7 ปีที่แล้ว +1

    Я сегодня задумывался как ускорить чтение с ик датчиков! Прям в тему видео! Спасибо!

  • @AndrewMikhno
    @AndrewMikhno 7 ปีที่แล้ว +15

    В ардуино ударение нужно делать на У. ардУино. Проверочное слово - светодИод.
    А вообще програмное ускорение - дичь какая то. Контроллер от этого не стал быстрее работать. Он только стал выполнять совершенно другой код с той же скоростью что и раньше, не более.
    З.Ы. исправльте свой светодИод. У меня уши кровоточат когда слышу такое.

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว +3

      +Andrew Mikhno Спасибо за отзыв. Слова - паразиты, трудно избавиться от того чему был научен.
      По поводу ускорения. Все верно, контроллер работает с той же скоростью, НО скорость выполнения программы увеличилась. Стандартные команды Ардуино ИДЕ сделаны универсальными (работают на любом микроконтроллере) а универсальность влечёт за собой усложнение кода для того что бы именно эта команда сработала именно на той Ардуино какую вы используете. В результате контроллер вместо одной операции делает несколько операций. Это влечёт за собой "медленную" работу программы, так как контроллер выполняет действия, которые на самом деле не нужны.
      В видео я привёл пример прямой записи в порт - такой код весит на много меньше (так как не происходит подключения стандартного "универсального" кода Ардуино ИДЕ, он здесь просто не нужен), а если лишний код не добавлен, то и контроллер не будет тратить рабочее время, а сделает только то что ему указали - запись в порт.
      Именно это и является "ускорением" - не делать лишней работы, а только то, что нужно. Код не другой, он тот же, только выглядит иначе. Но весит меньше и выполняется быстрее.

    • @AndrewMikhno
      @AndrewMikhno 7 ปีที่แล้ว +3

      Тогда следует говорить про реализацию алгоритма и оптимизацию кода. Но ни в коем случае не о том что контроллер заработал быстрее. Для примера - работу ПК можно ускорить путем некоего API увеличив частоты некоторых подсистем на мат.плате/процессоре. В этом случае получается "без обмана" - софтовое ускорение. По вашей же логике что бы сделать программное ускорение - нужно переписать код всей системы. Повторюсь - это оптимизация реализации алгоритма, не более. Изначально я подумал - вау, какой то программный трюк, недокументированные возможности, какие то заложенные производителем ограничения в виде излишних задержек при выполнении машинного кода, и это можно отключить, но был уверен на 99.9(9)%, что это скорее всего маркетинговый ход - называть вещи не своими именами.

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว +6

      +Andrew Mikhno Да, вы правы, правильно говорить "оптимизация" а не "ускорение". Видео рассчитано на заядлых "ардуинщиков", которые ничего другого не знают и не понимают сути процесса. Я просто хотел дать толчок к саморазвитию, к более глубокому освоению МК и т.д. Именно по этому я говорил об ускорении, а не об оптимизации - многие даже не знаю что это такое, а вот "ускорить" "на халяву" - этого многие хотят :)) вот я и попытался "перевернуть умы людей". Не подумайте что я из себя строю всезнающего, нет, наоборот, я сам только учусь. И о том что узнаю - рассказываю другим. И я тоже ошибаюсь. Но и учусь :)

    • @Alexander_Pisklov173
      @Alexander_Pisklov173 7 ปีที่แล้ว

      Andrew Mikhno
      Ага. На самом деле это не ускорение, а оптимизация кода.

    • @Alexander_Pisklov173
      @Alexander_Pisklov173 7 ปีที่แล้ว

      Home Made - То, что ты можешь сделать
      Вообще-то, это называется оптимизацией.

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

    Очень интересное видео, спасибо за труды.

  • @MrHazur
    @MrHazur 7 ปีที่แล้ว +5

    Представь, что нужно обрабатывать неопределенное количество данных, и уже невозможно бутет поймать тайминги цикла. Они будут плавать. Советую учить прерывания , создавать события и разбивать программу на независимые блоки(мультизадачность).
    К примеру, мограем светодиодом не приостанавливая основной цикл, раз в секунду: digitalWrite(13, (millis() / 500 % 2));

  • @sailtogether3236
    @sailtogether3236 3 ปีที่แล้ว +1

    Спасибо, информация полезная. Палец вверх! Хотелось бы, правда, заметить о несправедливости выражения "на чистом С". Это, как бы, в любом случае "чистый С", просто доступ через прослойку библиотек или доступ напрямую через регистры портов. И ещё, там в программном шиме опечатка: в цикле k не итерируется.

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

      Серьёзно? Автор явно указывает неправильные компоненты. И чему он научит? Писец.

  • @servarak
    @servarak 7 ปีที่แล้ว

    Спасибо братан. Помог разобраться в этом. Читал это и раньше, но не до конца понимал работу. Тут все понятнее

  • @Ardbot
    @Ardbot 6 ปีที่แล้ว +1

    Спасибо, столкнулся с аналогичной проблемой на attiny13, вот сижу, оптимизирую

  • @rudolfsikorsky7900
    @rudolfsikorsky7900 7 ปีที่แล้ว +11

    Ага, заменил команды в Блинк и потерял универсальность. Теперь под другую плату надо переписывать код!
    Да и читаемость .... Вместо человеческих слов какие-то каракули :)
    Ардуино ИДЕ сделана для простоты и универсальности. Плата за это - размер и производительность.
    Если умеешь писать на Си (или Ассемблере), Ардуино ИДЕ не нужна. Просто пиши на Си и лей прошивку программатором. Для Си библиотек готовых не меньше чем для Дуины. А та же Студия хотя бы имеет средства отладки, в отличие от. Кроме того, можно отлаживать прямо в железе, используя JTAG

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

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

  • @melickon
    @melickon 5 ปีที่แล้ว +2

    Какой-то треш в комментариях. Всем хочется сказать, что для высокой производительности есть всякие там STM32... Но это вы с точки зрения профессионалов говорите, когда выбор микроконтроллера, одна из опций проекта. В реальности же, что-то делается на Arduino и на каком-то этапе начинает не хватать производительности. И вот тут как раз пригодятся подобные советы, чтобы пожертвовать переносимостью, но заставить проект работать.

  • @ПавлЧ
    @ПавлЧ ปีที่แล้ว +1

    это не какие то команды, это запись на языке С, вместо ардуиновского С++, благодаря использованию библиотек языка С код занимает меньше места в памяти. Можно писать прошивку для ардуино или attiny в Atmel Studio на С, и такой код с теми же функциями что и в ардуино но на С будет занимать меньше памяти МК в несколько раз. Можно использовать attiny 44 там чуть больше памяти, а стоит он копейки по сравнению с ардуино, экономя память будет влезать средняя компактная програмка.

  • @ЮрийСамофал-ю9ь
    @ЮрийСамофал-ю9ь 2 ปีที่แล้ว +1

    Это шим ногодрыгом и используется по необходимости, если нужна большая разрядность, чем в аппаратном. Аппаратный же шим не влияет на скорость программы кроме записи в него числа. И разогнать его можно, таймеры поправь, возможно даже и командами ардуины, но это не точно:
    8 бит 62 500 Гц TCCR1A = TCCR1A & 0xe0 | 1;
    TCCR1B = TCCR1B & 0xe0 | 0x09;
    7 812,5 Гц TCCR1A = TCCR1A & 0xe0 | 1;
    TCCR1B = TCCR1B & 0xe0 | 0x0a;
    976,56 Гц TCCR1A = TCCR1A & 0xe0 | 1;
    TCCR1B = TCCR1B & 0xe0 | 0x0b;
    244,14 Гц TCCR1A = TCCR1A & 0xe0 | 1;
    TCCR1B = TCCR1B & 0xe0 | 0x0c;
    61,04 Гц TCCR1A = TCCR1A & 0xe0 | 1;
    TCCR1B = TCCR1B & 0xe0 | 0x0d;
    9 бит 31 250 Гц TCCR1A = TCCR1A & 0xe0 | 2;
    TCCR1B = TCCR1B & 0xe0 | 0x09;
    3 906,25 Гц TCCR1A = TCCR1A & 0xe0 | 2;
    TCCR1B = TCCR1B & 0xe0 | 0x0a;
    488,28 Гц TCCR1A = TCCR1A & 0xe0 | 2;
    TCCR1B = TCCR1B & 0xe0 | 0x0b;
    122,07 Гц TCCR1A = TCCR1A & 0xe0 | 2;
    TCCR1B = TCCR1B & 0xe0 | 0x0c;
    30,52 Гц TCCR1A = TCCR1A & 0xe0 | 2;
    TCCR1B = TCCR1B & 0xe0 | 0x0d;
    10 бит 1 5625 Гц TCCR1A = TCCR1A & 0xe0 | 3;
    TCCR1B = TCCR1B & 0xe0 | 0x09;
    1 953,13 Гц TCCR1A = TCCR1A & 0xe0 | 3;
    TCCR1B = TCCR1B & 0xe0 | 0x0a;
    244,14 Гц TCCR1A = TCCR1A & 0xe0 | 3;
    TCCR1B = TCCR1B & 0xe0 | 0x0b;
    61,04 Гц TCCR1A = TCCR1A & 0xe0 | 3;
    TCCR1B = TCCR1B & 0xe0 | 0x0c;
    15,26 Гц TCCR1A = TCCR1A & 0xe0 | 3;
    TCCR1B = TCCR1B & 0xe0 | 0x0d;
    Да ноги кстати под битность тоже разные, например D9-D10 - 10 бит.

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

      Все верно. На эту тему я делал видео: th-cam.com/video/UL7PQMs02X8/w-d-xo.html

    • @ЮрийСамофал-ю9ь
      @ЮрийСамофал-ю9ь 2 ปีที่แล้ว +1

      Да увидел, но есть одно замечание по по поводу шим. Пром. двигатели от частотников пищат от 1300, до 16 000 Гц, иногда 800-1200 частоты фигурируют - тут уже проблема в выходном каскаде скорее всего. А в общем хорошие видео так держать. Сам хотел канал запилить, но хорошая работа, резко всплывшая из ниоткуда, испортила все начинания!!! ) @@UCanDo

  • @andreyvashenko9321
    @andreyvashenko9321 4 ปีที่แล้ว +2

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

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

    Мой совет прост. Хотите быструю программу - пишите на ассемблере. Ну уж точно не в Arduino

    • @Silver2Storm
      @Silver2Storm 4 ปีที่แล้ว +3

      Можно и в Arduino IDE наассемблере писать. Это просто редактор и подключен к нему тот же компилятор.

  • @ibrag2012
    @ibrag2012 5 ปีที่แล้ว +2

    Раніше у мене ардуїно дригав ногою кожну мікросекунду а зараз кожну наносекунду: дякую! :)

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

    9:32 Скорость выполнения команды даже не 0.2, а 0.13! Лично проверил))

  • @JRichVid
    @JRichVid 7 ปีที่แล้ว +3

    Откуда информация про 1800 мксек на выполнение "digitalWrite(13, HIGH)"? Посмотрите текст реализации этой функции в Arduino\hardware\arduino\avr\cores\arduino\wiring_digital.c Там куча макросов и текст, конечно, в разы длиннее, нежели "PORTB |= 0x80", но длиннее не в девять тысяч раз. На "Меге" digitalWrite выполняется за 7,8 мксек (~125 тактов), a "PORTB |= 0x80" - за 0,625 мксек (10 тактов).

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

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

    • @JRichVid
      @JRichVid 7 ปีที่แล้ว

      Если нет осциллографа, можно воспользоваться фантазией и секундомером. Пишется, например, 100 одинаковых строк digitalWrite на включение светодиода, зацикливаются на повтор 500 раз, следом за циклом пишется цикл 100 digitalWrite на выключение, прокручивающийся 9500 раз. Перед циклами желательно запретить прерывания. Получается, что за один проход двух циклов команда digitalWrite будет выполнена 1 млн раз, а обрабочик цикла всего лишь 10 тысяч раз. Т.о., период вспышек будет определяться в основном длительностью выполнения digitalWrite. Измеряете секундомером длительность, например, 10 вспышек, делите её на 10 миллионов - вот искомая длительность.
      Если лень возиться с секундомером, можно воткнуть снаружи циклов измерение разницы millis() c отсылкой результата в параллельный порт, только тогда прерывания нельзя выключать, и обработчик прерываний внесёт дополнительное время в измеряемый период. На UNO получается 5,15 мксек, а на MEGA 2560 - 7,73 мксек.

    • @smert_okupantam
      @smert_okupantam 7 ปีที่แล้ว +1

      есть бенчмарки и мой Нано показывает длительность digitalWrite(3, HIGH); равную 3,67 микросекунды, а PORTB |= 0x80; длится 0,57 микросекунды.

    • @smert_okupantam
      @smert_okupantam 7 ปีที่แล้ว +1

      Кстати, если есть Logic Analyser, то можно просто подряд несколько одинаковых команд инверсии пина поставить и посмотреть в графике длительность импульсов.

    • @Alexander_Pisklov173
      @Alexander_Pisklov173 7 ปีที่แล้ว

      JRichVid
      Самому было интересно, откуда такие цифры. Я на mega32u4 осциллографом мерил - ~3.7мкС, а прямая запись в порт (out (p, val)) - 62.5нС.

  • @НикитаМитрофанов-х1и
    @НикитаМитрофанов-х1и 7 ปีที่แล้ว +1

    доброго времени суток, решил воспользоваться такими быстрыми командами.
    Но возникает ошибка и не удается компиляция. Единственное из за чего такое может быть, по моему мнению это из за того что я использую вместо ардуино платы, стм32. но с загрузчиком от ардуино и в среде ардуино иде. Может ли в этом быть проблема?

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Да, именно в этом и проблема. Команды приведены для контроллеров AVR. STM использует совершенно другие команды, и не известно, поддерживаются они в среде Ардуино ИДЕ или нет. Как пример, посмотрите мое видео th-cam.com/video/Zrkq6zEgEng/w-d-xo.html
      Это мигание светодиодом на STM. Там используются совершенно другие команды.

    • @НикитаМитрофанов-х1и
      @НикитаМитрофанов-х1и 7 ปีที่แล้ว

      Спасибо) будет время обязательно попробую разобраться)

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

    У Вас ШИМ выходит софтварный. Процессорное время занято. Есть таймеры и аппаратные моды ШИМа в AVR. Не проаерял, но аналогРид(), возможно, юзает как раз таймер аппаратно делая ШИМ.

  • @АнатолийКрасковский
    @АнатолийКрасковский 7 ปีที่แล้ว

    Вот интересно кто нибудь из авторов таких клипов читал муму на контроллеры ,которые устанавливаются в платы .1-максимальная рекомендованная частота 20 мГц при рабочем напряжении 5 V , ну и маленькое замечание - частота сигналов , при обращении к памяти программ не должна превышать 25 мГц (это относится ко всем контроллерам , оснащённых подобным видом памяти , даже smt - там тот же вид памяти ) 2 - есть ограничения в работе некоторых узлов самого контроллера , 3 - получение стандартных частот для работы ком порта , и интервалы работы АЦП и так далее 4 что в виренге , что и в Си , программный код всегда избыточный , и по производительности медленный 5 полное быстродействие можно увидеть только применив код написанный на родном для этих контроллеров языке - Ассемблер АВР , время на выполнение изменения значения на выходе составляет 2 такта тактового генератора и при 16 мГц составит 0,000 000 125 с или 0,125 микросекунд а команда выглядит так sbi portb,5 И ВСЯ ПРОГРАММА МИГАНИЯ ВМЕСТИТСЯ (ВМЕСТЕ С ЦИКЛАМИ ПРОГРАММНОЙ ЗАДЕРЖКИ И НАСТРОЙКИ )30-40 СТРОК каждая по 2 байта - допустим - и получится - до 80 байт кода(зто с самыми навороченными ходами ),при написании на Си (как у Вас выполнение составит более 8 тактов и будет больше указанного Вами ) , Ускорение работы программ на таких контроллерах возможно И НУЖНО выполнять только на родном для этих контроллеров языке - Ассемблер АВР - 133 команды , прекрасный битовый процессор , непосредственное управление всем железом и ПРЕРЫВАНИЯМИ что ограниченно и урезанно в среде Ардуино . Но Вы лишаетесь такой прекрасной ХАЛЯВЫ -НАЛИЧИЕ ГОТОВЫХ , КРИВЫХ , ЧАСТО ПРОСТО НЕ СПОСОБНЫХ ОРГАНИЗОВАТЬ НУЖНЫЙ ПРОЦЕСС КАК НАДО И С БОЛЬШИМ БЫСТРОДЕЙСТВИЕМ библиотек написанных для среды Ардуино . пример - работа с модулями nrf24l01 в Ассемблере показало такое быстродействие , что получается одновременно получать сообщения на одном канале от 12 источников , такого библиотека NRFmaster или подобные ей не могут -вот это я понимаю быстродействие ! И даже переход на smt не даст прироста в скорости - 25 мГц - обращение к памяти программ ,Всё не больше ,да ядро там работает на 80 но обращение к портам не более 20 мГц + наворот работы компилятора раздувает код просто не прилично . Само определение Ардуино - это игрушка в не опытных руках , учебник КАК НЕ НАДО ПИСАТЬ ПРОГРАММЫ для таки контроллеров , другое дело для smt нет для него хорошего Ассемблера ,не развивали для них это направление

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Понимаете, угодить всем невозможно. Сделал бы я видео об ассемблере - 99% начинающих ардуинщиков просто не стали бы смотреть... а видео делал именно для них, так сказать, хотел дать толчок к большему развитию
      В то же время писать что-то более простое, тогда знающие начинают говорить о том что что-то не договорил, не оптимизировал, недописал...
      Я не знаю по поводу скорости обращения к памяти (я сам только учусь и не претендую на всезнание), но в моей отладочной плате на STM32F407VET6 скорость на портах можно выставить более 100 мГц. Точно не помню, посмотрел 1 раз и забыл - не придал этому значения.
      По Ассемблеру согласен, язык сильный. В наше время это палка о двух концах. С одной стороны можно написать очень быстрый и оптимизированный код, который "заставит" быстро работать даже "медленный" контроллер. С другой стороны существует столько "мощных" контроллеров/процессоров и множество сред разработки, которые "в два клика" создают нужную программу. И, с учетом существующих мощностей, ко будет все так же быстро выполняться, легко портироваться на другую платформу, легко читаем...

    • @АлексейХомутников-ц5э
      @АлексейХомутников-ц5э 6 ปีที่แล้ว +1

      В "пользу" ассемблера говорит тот факт, что хуй кто когда портирует "KolibriOS" на другие платформы. Ассемблера я с лихвой нажрался во времена на Радио-86РК и работой с видеопамятью на i386dx, отладка адовый пиздец, хер когда к нему прикоснусь.

  • @7G763svR6
    @7G763svR6 5 ปีที่แล้ว +2

    Автору пора лечится от ардуино-зависимости, если он все же желает перейти с уровня начинающего (кому надо минимум ресурсов и знаний в ущерб возможностям) на продвинутый уровень (не используя библиотеки для дурака, а написаем своего кода)

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

    Спасибо за ролик, позновательно!

  • @ДмитрийПантелеев-д9я
    @ДмитрийПантелеев-д9я 7 ปีที่แล้ว +1

    Спасибо. Было интересно. Но, несколько сумбурно. Может быть, стоит как-то структурировать?

  • @antisdalexander7145
    @antisdalexander7145 7 ปีที่แล้ว

    Мне вот одно непонятно согласно спецификации на Atmega2560 Speed Grade максимальное 16 MHz для Atmega328 20MHz. Что мы достигнем подняв частоту внешнего кварца кроме того что все библиотеки рассчитаны на использования внешнего кварца для внутреннего генератора 16 и задержка 1000 мкс при другом кварце уже таковыми не будут что несет проблемы при настройке обмена данных с двумя или более МК. Что мы в конечном счете достигнем заменив кварц ? кроме как сбоя в настройке задающего генератора.
    Если речь про ускорение то тут я бы сказал что вопрос скорей к штатным функциям IDE Arduino почему они так много времени выполняются (Оптимизация кода функции за примером далеко ходить не нужно тот же IAR за это берет кило баксы). Возможно лучше говорить про варианты замены штатных ванильных функций IDE Arduino на более простые как показанный пример работы на прямую с портами Atmegи.

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Все верно говорите.

    • @Alexander_Pisklov173
      @Alexander_Pisklov173 7 ปีที่แล้ว

      Antisd Alexander
      Вообще-то, в ардуино есть описание платформ, в котором можно поправить частоту кварца.

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      +Александр Писклов Дело не в описании платформ и частоте кварца, а в том что все библиотеки рассчитаны на конкретную частоту МК. Тайминги в библиотеках сместятся, что вызовет сбой в работе/инициализации того или иного устройства. Если менять кварц (и соответственно менять частоту в описании платформы) то и нужно будет соответственно править и все библиотеки ко всем возможным устройствам... Та ещё головомойка...

  • @kooba6205
    @kooba6205 7 ปีที่แล้ว +33

    это не тот кварц!!

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

    Надо не пытаться скетчи оптимизировать, а писать на Ассемблере

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

      Кто сейчас пишет на ассемблере?

  • @ВасилийТёркин-г3м
    @ВасилийТёркин-г3м 7 ปีที่แล้ว

    Разгонял Мегу16 кварцем до 25МГц. При чём запускалась как при 5В питании, так и при пониженном до 3,6В (разряженный Li-ion акк.). С кварцем 27 МГц отказывалась стартовать при любом питании. Возможно, если выставить фуз-биты на тактирование от внешнего источника, получится разогнать и до 32МГц. Хотя лично у меня имеются сомнения по этому поводу.

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Мне встречались устройства с Мегой32, работали на частоте 32 МГц. Только они работали не от кварцевого резонатора (обычного кварца) а от кварцевого генератора.

    • @SaLaGaDH
      @SaLaGaDH 7 ปีที่แล้ว

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

  • @redsunpro.
    @redsunpro. ปีที่แล้ว

    Здравствуйте, а как аналоговый вход?

  • @Mulinby
    @Mulinby 7 ปีที่แล้ว +1

    Автор ты гений! Я запустил батлу на arduino UNO!
    А если серьезно, то вот так можно до 284 байт уменьшить моргалку
    #include
    int main(void)
    {
    DDRB = 0xff;
    start:
    PORTB ^= (1

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว +1

      Хороший пример быстрого и маленького кода
      По ходу ролик удалю и переделаю по-новой... В двух слова о моем видео пытался просто показать что Ардуино - это только начало, надо учить более серьезные языки, и переходить на "нормальное программирование"....

    • @smert_okupantam
      @smert_okupantam 7 ปีที่แล้ว

      Так и заяви в новом ролике, что Ардуино это проект для популяризации микроконтроллеров среди широких масс, первая ступень на пути великих возможностей, которые открывают нам МК.

    • @Alexander_Pisklov173
      @Alexander_Pisklov173 7 ปีที่แล้ว

      Николай
      Только, по-моему, вот так и появляются недопрограммисты, которые пишут код и абсолютно не понимают, как он работает.

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

    Добрый день! Подскажите ,для ардуино нужно добавить какие то библиотеки Аvr чтобы код писать на чистом си? Не получается запустить команду опроса порта на си if (!(PINB&0b00000001)) нужно в порте прерывания дополнительно проверять наличие сигнала на Пине B0 чтобы исключить помехи.
    В коде подключил библиотеку АВР , работает только аналог digitalwrite , а digitalread не работает?

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

      Добрый деень. Какой микроконтроллер у вас установлен?

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

      @@UCanDo ардуино нано, на выход все работает

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

      Я имел в виду какой конкретно микроконтроллер установлен на вашей Ардуино. Так как могут устанавливать разные микроконтроллеры. Предположу что это либо Atmega168 либо Atmega328. Может посмотреть какая именно?

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

      @@UCanDo атмега328

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

      Попробуйте простой скетч:
      const int buttonPin = 8; // the number of the pushbutton pin
      const int ledPin = 13; // the number of the LED pin
      void setup() {
      pinMode(ledPin, OUTPUT);
      pinMode(buttonPin, INPUT);
      }
      void loop() {
      if (!(PINB & 0b00000001)) {
      digitalWrite(ledPin, HIGH);
      } else {
      digitalWrite(ledPin, LOW);
      }
      }
      При нажатии на кнопку должен загораться светодиод

  • @aderod100
    @aderod100 7 ปีที่แล้ว +14

    loop:
    sbi PORTB, 7
    cbi PORTB, 7
    rjmp loop
    риально мало и быыстро =_=

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว +8

      Ассемблер есть Ассемблер. Вот только его Большинство Ардуинщиков совершенно не знает.

    • @JRichVid
      @JRichVid 7 ปีที่แล้ว +1

      Можно ещё быстрее:
      .MACRO ONOFF
      sbi PORTB, 7
      cbi PORTB, 7
      .ENDM
      loop:
      ONOFF
      ONOFF
      ONOFF
      ONOFF
      ...
      ONOFF
      rjmp loop

    • @Alexander_Pisklov173
      @Alexander_Pisklov173 7 ปีที่แล้ว +1

      Денис Акимов
      На ассемблере куда круче. И всегда понятно, сколько будет выполняться тот или иной код.

    • @Alexander_Pisklov173
      @Alexander_Pisklov173 7 ปีที่แล้ว +1

      Home Made - То, что ты можешь сделать
      Ага. Как-то давно делал usb устройство на pic'е с внешним usb контроллером. Писал, естественно, на ассемблере.
      Тут решил опробовать ардуино и понял, что это для детей. Лучше использовать атмел студию.

    • @XxxXxx-rc2nw
      @XxxXxx-rc2nw 7 ปีที่แล้ว

      первые 2 инструкции по 2 такта крайняя от 2 до 4. итого нога будет дрыгаться какминимум с 1/4 системной тактовой

  • @3dprinterdoma
    @3dprinterdoma 7 ปีที่แล้ว

    Как вы узнали сколько времени выполняется команда?

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Подобный вопрос уже был. Проверяется осциллографом. Но у меня осциллографа нет, потому взял данные из статей (ссылки есть в описании к видео).

  • @SplashT
    @SplashT 7 ปีที่แล้ว +3

    25:38 называется оптимизация кода (не увеличение мощности)

  • @Heorenmaru
    @Heorenmaru 6 ปีที่แล้ว

    изучи даташит на контроллер, там есть такая вещь как регистры, таймеры, АЦП и прочее
    показанный шим тут правильно работать не будет, для него надо настроить один из таймеров и выводить нужное значение в нужные регистры. в режиме FastPWM можно шим разогнать до 78kHz (с кварцем в 20MHz).
    По поводу кварца: у многих атмег максимальная частота, при которой контроллер будет надежно работать, это 20MHz

    • @UCanDo
      @UCanDo  6 ปีที่แล้ว

      Производитель действительно гарантирует стабильную заботу до 20 мГц. Есть еще другой показатель: 16 мГц при питании от 5 вольт. При питании 3.3 вольта стабильная работа производителем не гарантирована. Вот посмотрите это видео: th-cam.com/video/Waw00Nu-U-M/w-d-xo.html
      Используется Atmega326, кварц на 16 мГц. Питание - 3.3 вольта. Устройство стабильно работает (круглые сутки, не выключаясь) уже около 9-ти месяцев.
      То есть "не гарантировано производителем" - не значит что вообще не будет работать.
      При частоте 32 мГц важнейшим фактором является внешний частотный генератор. Именно внешний генератор. От всего остального (кварц, внутренний генератор) работает не стабильно. Я проводил разные эксперименты, с использованием обычного кварца стабильная работа была на частоте 27 мГц. Выше никак. Только от внешнего генератора.
      Согласен с тем что это все делается на свой страх и риск. Производителем не даются гарантии работоспособности. А значит вероятность сбоя все равно присутствует.

    • @АлексейХомутников-ц5э
      @АлексейХомутников-ц5э 6 ปีที่แล้ว

      Я делал как-то схему на 16Мгц 3.3v, потому что лень было согласовывать уровни 3.3-5V, работа с spi tft и spi флеш памятью, поскольку progmem для графики не хватало вообще. Работало паршиво, флеш читался и писался через раз. После того, как поменял кварц на 8МГц, все заработало идеально.

  • @ПорохАнатолий
    @ПорохАнатолий 5 ปีที่แล้ว +1

    Настройка ножки на ввод или вывод осуществляется командой DDR Например DDRB = 0b00000001; равно PB1, OUTPUT

  • @ИштванГалга
    @ИштванГалга 7 ปีที่แล้ว +4

    Еще лучше перейти к такой структуре программы
    int main() {
    init();
    //setup()
    for (;;) {
    //loop()
    }
    return 0;
    }

    • @ВалентинАндреев-л3т
      @ВалентинАндреев-л3т 6 ปีที่แล้ว

      заааачем?

    • @Avazart
      @Avazart 6 ปีที่แล้ว

      в стандартном loop() дополнительные проверки делаются, ели делать свой цикл быстрее выполняется, так говорят по крайней мере.

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

      Так такую структуру программы Arduino IDE добавляет от себя автоматически

  • @nikolaydd6219
    @nikolaydd6219 4 ปีที่แล้ว +3

    18:45 разве шип в ардуино 50Гц, он ведь 500Гц

  • @seixx3161
    @seixx3161 6 ปีที่แล้ว

    подскажите.. у меня ардуино уно. если
    if (!PIND & 0b000010000) {
    s++;
    }
    подключив импульс-генератор я не смог получить и 5кГц?
    а если:
    attachInterrupt(0, DF, RISING) ;
    void DF () {
    s++;
    }
    но attachInterrupt мне не подходит
    получилось в районе 20-30кГц.
    что не так?

    • @UCanDo
      @UCanDo  6 ปีที่แล้ว

      Добрый день. Код смогу проверить только на выходных.
      Проверять через if в основном цикле программы с такой частотой не получится.
      Только прерываниями. Но надо проверить.

    • @seixx3161
      @seixx3161 6 ปีที่แล้ว

      мой код такой:
      void setup() {
      pinMode(2, INPUT);
      pinMode(4, INPUT);
      attachiterrupt(0, DF, RISING);
      void DF() {
      if (PIND & 0b00010000) {
      s++;
      }else{
      s - -;
      }
      void loop() {
      // перевод s в градусы
      //далее выводим s на lcd или serial.

    • @seixx3161
      @seixx3161 6 ปีที่แล้ว

      ститывание импульсов с энкодера происходит с частотой ~5 кГц
      но если из DF убрать
      if (PIND & 0b00010000) {
      s++;
      }else{
      и оставить только s-- то он считывание выполняет с частотой в ~ 35 - 50 кГц

  • @farkoppp
    @farkoppp 7 ปีที่แล้ว

    Означает ли такое ускорение чипа(программное) , что теперь можно получать на выходе и полноценное качественное аудио?

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Лично не делал и не проверял. Есть проекты, где Ардуино воспроизводит звуковые файлы, но это были не MP3 a WAV, да ещё с урезанным битрейтом. На мой взгляд качественный плеер MP3 на базе Ардуино сделать невозможно. Либо использовать внешние модули MP3 - кодировщики, либо переходить на STM

  • @orkoteg09
    @orkoteg09 7 ปีที่แล้ว

    DDRD - регистр направления передачи данных порта D. Биты этого порта управляют тем, настроены ли выводы Порта D как входы, или как выходы.
    А потом уже PORTD, PIND.

  • @ВадимШевченко-ш1т
    @ВадимШевченко-ш1т 7 ปีที่แล้ว +17

    Ох и бред! автору бы матчасть поучить, а потом ролики снимать... (((

    • @ms-fair
      @ms-fair 5 ปีที่แล้ว +4

      а можно сначала аргументы а потом советы о учебе матчасти?

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

      @@ms-fair Нельзя спорить с диванным экспертом. Ему виднее. ))

    • @ms-fair
      @ms-fair 4 ปีที่แล้ว

      @@ahalaimahalai6205 хорошо. Больше не буду. И мньше тоже.

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

      @@ahalaimahalai6205 Ну для начала надо подучить программирование на СИ. А не копипастить хуки с форумов.

  • @Raspi8
    @Raspi8 7 ปีที่แล้ว

    А разве не надо добавлять avr/io.h перед программой?

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

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

  • @yaglaleon6064
    @yaglaleon6064 7 ปีที่แล้ว

    А BASCOM AVR через среду Ардуино пойдет?

    • @slava022967
      @slava022967 7 ปีที่แล้ว

      нет, да и зачем вам это нужно, BASCOM и так не плохо работает

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

    Среда Ардуино из любого камня сделает кусок тормознутого железа (криворуко написанные библиотеки с кучей ненужного шлака). Пишите на норм си и будет вам счастье, иногда приходится пользоваться вставками на asm. Автор вы можете ускорить этот контроллер с 9 этажа))).

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

    СветодИод =)

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

      светодИад

  • @АфганскийБродяга-я7м
    @АфганскийБродяга-я7м 7 ปีที่แล้ว

    Как ты микросекунды вычислял?

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Данные взяты из разных источников (ссылки на статьи есть в описании). Но можно и просто осциллографом посмотреть.

  • @smert_okupantam
    @smert_okupantam 7 ปีที่แล้ว

    тот кварц что показывает автор ролика можно заменить на любой, например 3,2ГГц и АТмега 2560 все равно заработает, можно даже вообще не впаивать ничего

  • @Alex8Zajec
    @Alex8Zajec 7 ปีที่แล้ว

    А где ассемблер взять для атмель или кода?

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Писать на ассемблере можно где угодно. Хоть в блокноте. Лучше использовать Нотпад++
      А дольше сгенерировать hex файл и зашить его обычным программатором. Для генерации прошивки можно использовать tavrasm.

  • @3d_idea800
    @3d_idea800 4 ปีที่แล้ว

    а есть где посмотреть все команды для перевода ардуины?

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

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

    • @3d_idea800
      @3d_idea800 4 ปีที่แล้ว

      @@UCanDo и с чего начать в итоге?

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

      Что конкретно вас интересует?
      Если хотите посмотреть список доступных команд для Ардуино IDE, то вот здесь можете посмотреть основные Команды: arduino.ru/Reference
      Вот здесь можете посмотреть более расширенный список команд: www.arduino.cc/reference/en/
      Вообще в Ардуино IDE можно использовать практически все от С++, а так же использовать вставки Ассембера.
      Если по каким-то настройкам микроконтроллера (на пример таймеры и т.д.) то нужно либо использовать готовые библиотеки, либо изучать даташит на микроконтроллер.

    • @3d_idea800
      @3d_idea800 4 ปีที่แล้ว

      @@UCanDo команды для ардуино и написание скетчей не вызывает проблем, также как добавление функций в библиотеки ардуины. Хочется большего. Я так понимаю если лезть в глубь то через С++ и далее асемблер.... мне бы ещё примеры кода.

  • @АлексейЛеонгардт-т1г
    @АлексейЛеонгардт-т1г 6 ปีที่แล้ว

    Где скачать такие красивые карты с описанием портов?

    • @UCanDo
      @UCanDo  6 ปีที่แล้ว +1

      Добрый день. В Гугле введите "Arduino Uno Pinout" или название той Ардуино что вам нужно. Перейдите в "Картинки". Там и будут распиновки

  • @dmytroi5456
    @dmytroi5456 7 ปีที่แล้ว

    Автор, то кварц от usb-uart преобразователя, сам МК тактируется от крохотного кварца возле пинов 3.3 и 5v. А то что ты сделал программно, называется не "ускорение ардуино", а избавление от лишних комманд при записи в порт GPIO, все остальные действия выполняются со все той же скоростью. И то что оно ускорилось в 20 раз - где измерение? В среде ардуино так же есть функция задержек на микросекунды, без подключения дополнительной бибилотеки - delayMicroseconds();

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Спасибо за отзыв. Ваши замечания правильны. Их уже много раз писали в комментариях к видео. Там же я и давал ответы. Как-то не хочется опять все дублировать. Почитайте комментарии

  • @EugeneAnt
    @EugeneAnt 7 ปีที่แล้ว

    но при замене кварца возникнет проблема совместимости с модулями.. не?

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Проблема совместимости возникает только на программном уровне, но не со всеми модулями. Некоторые все так же работают, а некоторые нет. Это связано с таймингами в командах. При замене кварца, время задержек изменяется, что влечет за собой неправильную передачу команд/данных, и, соответственно, это вызовет проблемы в работе.

  • @EugeneAnt
    @EugeneAnt 7 ปีที่แล้ว

    да, "оптимизация" библиотек поражает .. интересно, с чем связана такая медлительность при использовании библиотек?

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว +1

      Да все та же "кроссплатформенность". В библиотеках идет проверка на то, какая ардуина используется, какой стоит микроконтроллер, идет переподстановка многих констант / настроек под конкретный микроконтроллер. Да и еще много чего...
      К тому же основная цель многих библиотек - не скорость, а работоспособность на разных Ардуино.

    • @tihond11
      @tihond11 7 ปีที่แล้ว

      Это чтобы нубам легче было.

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

    Разве миллисекунды это _delay_us?? Это же уже микросекунды вроде бы.

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

      Да, все верно

  • @krepton85you
    @krepton85you 7 ปีที่แล้ว

    Эт конечно все хорошо, но нужно к этому вопросу подойти с др. стороны, со стороны Arduino ide и модефицировать ее.

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Сомневаюсь что этим кто-то будет заниматься. Лучше переходить на AVR Studio

    • @АнтонКозырев-г9г
      @АнтонКозырев-г9г 7 ปีที่แล้ว

      Дмитрий Екименко лучше переходить на stm, и забыть это говно как страшный сон, stm8 дешевле меги8, но лучше.

  • @neroslava1
    @neroslava1 7 ปีที่แล้ว +11

    Куда скидывать на лечение ?

  • @Juriy830
    @Juriy830 7 ปีที่แล้ว

    Ну всё таки это конструктор чуть ли не для детей. Что бы поиграться вполне хватает. А ШИМ тут получится какой то реального времени, т.е. работает только шим, всё остальное стоит

  • @Red-gv4bl
    @Red-gv4bl 4 ปีที่แล้ว

    продолжи эту тематику

  • @0imax
    @0imax 7 ปีที่แล้ว

    Ардуино пойдёт для простых, непроизводительных задач. Но что-то серьёзное на ардуино сделать не получится.
    Надо учить ассемблер и потом С, но никак не наоборот. Ну и бросать уже эти Меги - STM сейчас на коне. А то некоторые до сих пор под pic16 свои самоделки пилят, поди найди это древнее г.. мамонта))

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

      В Arduino IDE С используется.

  • @poweredbysergey
    @poweredbysergey 7 ปีที่แล้ว

    Cool

  • @xavigarcia5969
    @xavigarcia5969 6 ปีที่แล้ว

    Капец! Уже докатились до оверлока ардуино с жидким азотом. ГТА 5 потянет?

  • @ZacroyPast
    @ZacroyPast 6 ปีที่แล้ว +1

    OGON!!! LIKE!!!

  • @GodsHermes
    @GodsHermes 7 ปีที่แล้ว +1

    А если писать на ассемблере, то будет еще меньше(на порядок), и максимально быстро.

    • @zonderdk
      @zonderdk 3 ปีที่แล้ว +1

      Не будет), инструкции типа PORTB |= 1

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

    Если цикл ардуиновский убрать (лупп) и использовать чисто СИшные команды еще раз в 30тыс. ускоришься...

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

      Согласен.
      Кстати, видео довольно старое, с тех пор Ардуино ИДЕ обновилась и многое пофиксили, и скорость работы стала приближаться к СИ-шной.

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

      @@UCanDo Это сама ИДЕ стала шустрее(т.е. компиляция).. а сама прошивка ардуиновская (код этот) как был кривой, так и остался.. Ребята на форуме "схем нет", наглядно показывали разницу на блинке.. можно в луупе убрать задержку, только вкл. и выкл светик и посмотреть скорость на осциллографе.. там меандр получается не выше 50кГц. и еще помеха (когда цикл Лууп переходит в начало), и можно сделать этот блинк чисто СИшными командами, получим примерно половину тактовой частоты (т.е 8 Мгц при такте 16).. вот те и разница: 50кГц и 8 Мгц..

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

    Или я что-то не понимаю в двоичной системе счисления, или 0b00001000 - это не 3, а 8

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

      3-й бит

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

      @@UCanDo Да, уже понял)

  • @diminddl
    @diminddl 7 ปีที่แล้ว

    а разве _delay_us ето не микросекунды для милисекунды вроде _delay_ms.

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      +Dimon Luchyn Да, все верно, нужно писать ms. Но у меня почему-то и так и через us работает одинаково.

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

    Проверил время исполнения DigitalWrite, и офигел, порядка 6 мкс! Тогда о чем речь в ролике, о каких 1800?? Автор, поясни, пожалуйста?

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

      Видео не новое. Возможно в новых версиях Arduino IDE код подправили и скорость возросла. Надо проверить.

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

      @@UCanDo , я так же предположил. Сейчас реально за два исполнения 12 мкс. Спасибо за ответ)

    • @ЛевЛевинсон
      @ЛевЛевинсон 3 ปีที่แล้ว

      ​@@UCanDo Я проводил тесты на Arduino Uno порядка 5 лет назад. digitalWrite() - порядка 4-5 мкс.

  • @Простойкакбумага
    @Простойкакбумага 7 ปีที่แล้ว +3

    Если совместить способ с заменой тактового генератора и писать скетчи на чистом avr то мк будут летать

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Да, скорость будет очень большая! Я видел проекты с частотой 32 Мегагерц! Библиотеки все равно придется править или писать самому.

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

    ты конечно молодец что понял что в ардуино иде чой то не то ))) но ты бы сначала сам разобрался с этим потом бы объяснил как писать проги на простом Си, а так блеешь что то и сам не понимаешь , но направление правильное, и молодец что разбираешься, но скорее бы ))) надо писать на Си, а некоторые вещи или строки даже на "страшном" Ассемблере! как делают продвинутые прогеры.

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

      спасибо, дорогой что правильно понял! значит все получится! я старый инж-электронщик и радиолюбитель, лет 15 назад увлекся AVR и PIC и писал на них управление блоками тьюнеров из телевизоров и автомагнитол на CodeVision, а сейчас полгода назад увидев ардуино решил приобщить к этому делу внука и соседского мальчишку, стал читать и смотреть ютуб, полный дурдом этот ардуино-иде! и эти дебильные скетчи!))) но для начала наверно все таки придется с ним познакомиться или может лучше MariaMole. но все таки хотелось бы подружить CVAVR с ESP32 и с NodeMcu как более продвинутые ардуины)

  • @ВасилисаПримудрая-х9ц
    @ВасилисаПримудрая-х9ц 3 ปีที่แล้ว

    Чтоб пересесть на другую платформу будет опять кодить :(
    Универсальность программы теряется.

    • @ВасилисаПримудрая-х9ц
      @ВасилисаПримудрая-х9ц 3 ปีที่แล้ว

      ...
      Вообще говоря, поступать так - не лучшая идея. Почему нет? Вот несколько причин:
      Код намного сложнее отлаживать и поддерживать, и его намного труднее понять другим людям. Процессору требуется всего несколько микросекунд для выполнения кода, но вам могут потребоваться часы, чтобы выяснить, почему он работает неправильно, и исправить это! Ваше время ценно, правда? Но компьютерное время очень дешево, если судить по стоимости электричества, которое вы его питаете. Обычно гораздо лучше писать код наиболее очевидным способом.
      ...
      www.arduino.cc/en/Reference/PortManipulation

    • @UCanDo
      @UCanDo  3 ปีที่แล้ว +1

      @@ВасилисаПримудрая-х9ц Я не соглашусь с вами.
      Почитайте историю создания Ардуино, на пример в Википедии: ru.wikipedia.org/wiki/Arduino
      Цитирую: "Целью проекта было создание дешевой и простой среды для начального обучения программированию".
      а если более подробно то среда разработки Ардуино разрабатывалась для школьников, чтобы заинтересовать ДЕТЕЙ и чтобы ДЕТЯМ было легко и просто писать какой-то код. Цель была именно в детях, в простоте, в том, чтобы заинтересовать, а не научить.
      Представьте себе человека, который всю жизнь ездил на машине только в симуляторе, а в качестве управления был только геймпад с 8 кнопками. Зато все просто и понятно, угол обзора всего несколько десятков дюймов (экран монитора), управление проще простого, не нужно переучиваться на управление другой машиной, ведь геймпад тот же.... А что будет если такой человек сядет в реальную машину?
      С микроконтроллерами то же самое. Ардуино не учит программированию. Вот скажите, что вы будете делать, если сделали все по инструкции, подключили все необходимые библиотеки, все настройки прописали правильно, компиляция и прошивка прошли без проблем, а в результате устройство не работает, или работает не так. Что вы будете делать? Что сделают те, кто ничего не знают кроме ардуино? Сможет ли кто-то самостоятельно разобраться, найти и устранить глюк? Может несколько человек и смогут, но подавляющее большинство побежит на форум чтобы получить готовое решение, или начнут качать/устанавливать другие библиотеки и пытаться запустить все МЕТОДОМ ТЫКА. Потому что никто не разбирается в том как работают библиотеки, что в них внутри, какие процессы происходят в МК, вот по этому таким людям потребуются МНОГО ЧАСОВ чтобы понять что в коде написано и еще больше часов чтобы найти ошибку. А если ошибка не явная - все! Приехали! Туши свет! Скажите, вы сможете определить ошибку связанную с наползанием "кучи" на область явно объявленных переменных. Вы хоть знаете о чем я сейчас спросил? А сколько еще Ардуинщиков об этом знает? один? два?
      Поймите, все, абсолютно все СЕРЬЕЗНЫЕ среды разработки работают на прямую с портами.
      Еще вопрос: что будет делать Ардуинщик, если у него не хватает памяти МК? Ну вот тупо программа не влазит в Atmega328. То есть 32 килобайта и не хватило... код весь пересмотрели, ничего выкинуть нельзя. Что делать? У меня была такая ситуация. После окончания написания программы код занимал 205% памяти, то есть 65,6 КИЛОБАЙТ! Кто из ардуинщиков с этим справится? Сразу побегут покупать Мегу2560 потому что не способны решит элементарные проблемы и вопросы. Знаний нет. После полу часа оптимизации код стал занимать 90%, то есть 28,8 килобайт. Даже свободное место осталось! И это не максимальная оптимизация. Я ничего не выкинул, не вырезал, все функции остались....
      А на счет универсальности... Это такой спорный вопрос. И им "тычут" в первую очередь, но по факту никто этим не пользуется, и в половине случаев эта кроссплатформенность НЕ РАБОТАЕТ. Попробуйте один и тот же проект проект скомпиллировать и запустить на РАЗНЫХ Платах / Микроконтроллерах:
      Atmega8
      attiny85
      Atmega328
      Mega2560
      Arduino DUE
      Arduino LEONARDO
      Arduino ZERO
      ARDUINO MKR VIDOR 4000
      ARDUINO 101
      ARDUINO YÚN
      ARDUINO M0
      и так далее... Перечислять можно долго.
      Кроссплатформенным в этих всех платах будет только скетч Blink (но не факт). Весь остальной код нужно будет существенно переделывать. А многие библиотеки так и вовсе не заработают! Так что не заблуждайтесь о кроссплатформенности.

    • @ВасилисаПримудрая-х9ц
      @ВасилисаПримудрая-х9ц 3 ปีที่แล้ว

      @@UCanDo
      _Вы хоть знаете о чем я сейчас спросил?_
      Вы умеете играть на пианино?
      Думаю, что да ;))
      Я в начале.
      Уже есть вопросы, но я их приберегу, пока они не оформятся в *понятные* вопросы ;))

    • @ВасилисаПримудрая-х9ц
      @ВасилисаПримудрая-х9ц 3 ปีที่แล้ว

      П.С.
      Минд42 плохо дружит с телефонами/планшетами.
      Комп работает с "картами" нормально.
      Там ссылки по теме. Мож чего пригодится...

    • @UCanDo
      @UCanDo  3 ปีที่แล้ว +1

      Так у меня и видео не начального уровня. Канал рассчитан не на новичков, а на тех кто немного разбирается в программировании.
      И да, я умею играть на фортепиано и немного на гитаре ;)

  • @ВасилийПупкин-м3з
    @ВасилийПупкин-м3з 3 ปีที่แล้ว +1

    Дядя это не тот, твой мелкий кварц

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

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

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

      А как получить этот Машинный код? Вы сможете написать программу в виде «0» и «1»?

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

      Есть языки низкого уровня. Все расслабились на С, и тому подобные, еще бейсик вспомните.@@UCanDo

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

      Кстати, есть Бейсик для АВР... но это совсем уж извращение :)))

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

      Alex Bel, на порядок - значит в 10 раз. Ну ну. Смешно. Хоть раз пробовали декомпилировать код Си? Современный оптимизирующий компилятор генерирует код лучше, чем напишет человек на ассемблере. Только в очень редких случаях удается написать чуть-чуть быстрее.
      Реальный код это вам не ножкой подергать.

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

    Толково...

  • @Простойкакбумага
    @Простойкакбумага 7 ปีที่แล้ว

    3:16 в корне не соглашусь!
    Нужно собрать новый bootloader и загрузить его в мк
    Собрать bootloader можно тут homes-smart.ru/index.php/oborudovanie/arduino/avr-zagruzchik

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      А какое отношение имеет бутлоадер до скорости выполнения команд и к библиотекам??? Бутлоадер выполняет только одну цель: через UART получить прошивку и записать ее в конкретный адрес памяти. ВСЕ!
      Если МК будет работать на частоте (допустим) 32 мегагерца то и все команды будут выполнятся быстрее, все тайминги ускорятся, и работа с устройствами нарушится так как тайминги выполнения команд МК будут не соответствовать таймингам команд конкретного устройства (на пример дисплея). Работа нарушится.

    • @Простойкакбумага
      @Простойкакбумага 7 ปีที่แล้ว

      Не буду спорить, я говорю что лично проверил на atmega 8, 328 с разным кварцем и собранным бутлодером!
      Но если мои слова вас не убедили, тогда попробуйте залить на 328-ую bootloader собранный для 8 мгц и установите кварц на 16 мгц, после чего загрузите блинк.

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Вы поймите, вы не привели никаких данных. Лишь намеки. Если я в чем-то не прав, то дайте конкретные данные, ссылки где точно описано о том что вы говорите. А так даже не совсем понятно о чем речь...

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Кстати, знаете почему у вас блинк в обоих случаях получается одинаковым? Потому что вы в настройках boards.txt прописали значение частоты. Вот только для большинства библиотек этого не достаточно.

    • @Простойкакбумага
      @Простойкакбумага 7 ปีที่แล้ว

      Я не сказал что он получается одинаковый!
      Он разный и я прекрасно знаю все про boards.txt, он у меня настроен под целую ахапку атмег и разных частот для этих самых атмег!
      И рас уж такая пьянка пошла, то все толковые программисты делают библиотеки которые подстраиваются под частоту мк.
      А что касается не подходящих библиотек, заменить чило тактов в библиотеке это не такая и сложная задача.
      Библиотеки RF24, MFRC522, Shifty и еще многие другие, прекрасно работали без изменения.

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

    в 20 или в 10?

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

      в примерно 10, тоесть даже не 10, не говоря уже о 20

  • @ВячеславВоронов-ы2м
    @ВячеславВоронов-ы2м ปีที่แล้ว

    Зачем ты "подставил" ОТЦОВ АРДУИНО! Скетчи на ардуино выполняются ОЧЕНЬ МЕДЛЕННО!😢

  • @ujinn7248
    @ujinn7248 6 ปีที่แล้ว

    я все понимаю, парень хочет показать альтернативные способы, которые "как бы" оптимизируют код, но нафига при этом комментарии то он удаляет??
    при компиляции они один фиг не попадают ....

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

      наверное чтобы на экране места меньше занимали.. а не в памяти микроконтроллера.. не?)

  • @ДмитрийЗайцев-с7д
    @ДмитрийЗайцев-с7д 7 ปีที่แล้ว

    Такая запись и выглядит вроде понятнее

  • @Juriy830
    @Juriy830 7 ปีที่แล้ว +2

    500 гц а не 50 !

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

    Ерунда всё это! Ставил кварц на 23 мГц и всё прекрасно работало,но почему то заменил обратно на 16 мГц. Значит не всё так прекрасно как автор утверждает ?

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

      Одной только заменой кварца не получится все решить. Нужно и код, и компилятор настраивать под новую частоту, иначе нормально работать не будет

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

    В Протеусе проверил код ,не работает шимм..

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

      проверьте в реальном железе. Протеус не всегда адекватно моделирует устройства.

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

      @@UCanDo На счет ускорения шим цикл for
      void loop()
      {
      for (int i=0; i

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

      В видео я допустил ошибку. Где-то в комментариях уже говорилось об этом

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

      Нужно дописать k++ перед закрывание скобок

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

      так работает но ведь цикл должен всегда крутиться как же другии операции
      #include
      #include
      int PWM_time=200; //Число, которое мы как бы хотим записать в analogWrite(PIN, 32)
      void setup() {
      DDRB=B00000001;
      PORTB=B00000000;
      }
      void loop() {

      for (int k=0; k

  • @opoffis
    @opoffis 7 ปีที่แล้ว

    Круто

  • @Григорий-б5ж
    @Григорий-б5ж 7 ปีที่แล้ว

    у вас есть кот? А давайте увеличим ему яйца!

  • @zaharshoihit1183
    @zaharshoihit1183 7 ปีที่แล้ว +1

    Бля, какой понос слов!!!
    Почему ролик который можно сделать на 10 минут, растянул на пол часа???
    Вроде бы тема интересная, но пока слушал захотелось спать!

  • @OMG4WTF4OMG
    @OMG4WTF4OMG 7 ปีที่แล้ว

    А слабо прошивку от пультоскопа ускорить?

  • @San_Cone
    @San_Cone 7 ปีที่แล้ว

    Что за музыка, скинте название кто знает

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว +1

      Музыка: Hevenly - Highway-WQ4FBtyC

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

    Зачем для ШИМ писать в порты. Он сам это сделает. Надо только настроить работу таймера и схемы сравнения.

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

      Как?
      Я совсем новенький в Ардуино. Нет ли у Вас ссылок/инструкций по ускорению работы платы?

  • @fdg0d1
    @fdg0d1 7 ปีที่แล้ว

    это и есть оптимизация о которой юбисофт ничего не знает

  • @ИванАлексеев-ь6б
    @ИванАлексеев-ь6б 5 ปีที่แล้ว

    Все гораздо проще звучит, во первых не ускоряем ардуино! а правильно используем микроконтроллер AVR(которые засрали ардуиной), то есть пишем код в человеческой среде, а arduino ide, это априори мусор. странно видеть людей которые этому уделяются, люди которые убили мощность контроллера(а не ардуино) на ровном месте.

  • @РусланНощенко-ы4щ
    @РусланНощенко-ы4щ 5 ปีที่แล้ว

    вот только на 11:27 минуте подождали не секунду а 0,001 секунды потому что us это микросекунда 10 в -6 степени а ms это миллисекунда 10 в -3 степени,автор не делай ошибки грубые и будь внимателен

  • @andreyparovozz
    @andreyparovozz 6 ปีที่แล้ว

    ПО ардуино - это шляпа. Бестолковая подсветка, подсказок нет совсем. Пишешь функцию, а какие аргументы у неё - хер поймешь. Atmel Studio тоже не подарок, но даже она в разы удобнее.
    Мы то можем писать в ардуино на си, но вот полно библиотек (особенно родные), которые сводят на нет все наши потуги.
    С другой стороны, если программа огромная и быстрее и удобнее её писать в среде ардуино, то имеет смысл сменить платформу.

    • @Avazart
      @Avazart 6 ปีที่แล้ว

      Это да, но никто не мешает смотреть исходники библиотеки и смотреть параметры.

  • @Незнайка79
    @Незнайка79 7 ปีที่แล้ว

    А в примере с кнопкой, читается весь порт целиком вместо одного пина! Зачем путаешь новичков, которые не знают С++! Да и С++ в разных средах программирования отличается!

    • @UCanDo
      @UCanDo  7 ปีที่แล้ว

      Да к ведь и не возможно считать отдельно 1 бит... Порты потому и разделены по 8 пинов в каждом (0-7) что составляет 1 байт. Это ограничение самого микроконтроллера. Он может дать значение только порта целиком, всех 8-ми бит (портов) сразу. А уж с полученным байтом мы и сравниваем требуемое нам значение и тем самым узнаем в каком состоянии находится тот или иной бит (то есть порт).

    • @Незнайка79
      @Незнайка79 7 ปีที่แล้ว

      Возможно в этой среде и невозможно (надо проверить), а в некоторых других средах разработки это реально сделать.