🚩Аппаратные или внешние прерывания в Arduino (AVR). Прерывание по кнопке и дребезг контактов

Поділитися
Вставка
  • Опубліковано 16 січ 2025

КОМЕНТАРІ • 96

  • @LabRazum
    @LabRazum  5 років тому +5

    Программа, позволяющая обойти дребезг контактов кнопки:
    drive.google.com/drive/folders/1Km0pM3WdDM947XMnONF4SkD8ls-V4UeB?usp=sharing
    Краткая выжимка из видео:
    - Что такое аппаратные прерывания и как они работают (0:33)
    - Смотрим информацию о прерываниях в datasheet на микроконтроллер ATmega328p (2:38)
    - Пишем программу для внешнего прерывания по кнопке (6:24)
    - Наблюдаем дребезг контактов на графике осциллографа (14:47)
    - Пишем простую программу для борьбы с дребезгом контактов (16:00)
    - Получаем домашнее задание (22:30)

    • @jaroslavfrunt
      @jaroslavfrunt 5 років тому +3

      ИМХО лучше выкладывать на гитхаб
      Там можно просто посмотреть код
      А с диска обязательно скачивать надо

    • @НиязРустемов-р3ц
      @НиязРустемов-р3ц 2 роки тому

      19:53
      void button(){
      if (millis() - timerPrew >= 200){
      timerPrew = millis();
      countInterrupt++;
      }
      }
      countOn тут незачем... Если нужный интервал пройден, то сразу считаем количество нажатий. Я могу ошибаться, так как пришёл сюда узнать, как сделать прерывание по кнопке, но при этом показалось, что флажок тут избыточен. Если я заблуждаюсь, буду признателен за критику.

  • @ded_pihor
    @ded_pihor 3 роки тому +2

    Мне кажется это лучшее объяснение прерываний на ардуино в ютубе

  • @guver8036
    @guver8036 5 років тому +13

    Познавательно. Доходчиво объясняешь. Приятно послушать.

  • @starkrim9705
    @starkrim9705 3 роки тому +2

    Многое узнал, до чего самостоятельно трудно догадаться, спасибо!

  • @AndriiNikolaiev
    @AndriiNikolaiev 5 років тому +12

    Спасибо. Приятно и полезно смотреть твои видео!

  • @Mkorostel
    @Mkorostel 4 роки тому +3

    Сложные темы, а как просто и доходчиво объясняются. Здорово!

  • @ShadySt
    @ShadySt 3 роки тому +6

    23 минуты пролетели как мгновение. Очень увлекательно!

    • @НиязРустемов-р3ц
      @НиязРустемов-р3ц 2 роки тому +1

      Особенно на скорости 2х.
      Большое спасибо за хороший урок.

  • @aradivil
    @aradivil 5 років тому +4

    Спасибо. Просто о сложном. Замечательная подача информации.

  • @alexandrkontsedalov3613
    @alexandrkontsedalov3613 4 роки тому +1

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

  • @oOcitizenOo
    @oOcitizenOo 5 років тому +5

    Ты вернулся, ура!)

  • @TDMLab
    @TDMLab 5 років тому +3

    Спасибо, подкинул хорошие идейки👍

  • @loopleet4750
    @loopleet4750 4 роки тому +6

    20:48 по мне так лучше бы приучил зрителей объявлять переменные через вот такую форму записи " int16_t " так сразу видно какое количество бит и бай в числе.
    А какое количество бит в long нужно запомнить. и иногда они могут отличаться.
    в разных микроконтроллерах или языках.
    да и увеличить(переименовать) переменную int8_t до int16_t гораздо чем менять bute в int

  • @Ardbot
    @Ardbot 5 років тому +5

    Узнал много нового. Спасибо

  • @aleksivanov9137
    @aleksivanov9137 5 років тому +1

    Спасибо большое за вашу проделанную огромную работу.Все понятно,легко и доступно объясняете.Есть просьба к Вам,сделайте пожалуйста разные курсы.Как примерно в школе,первый класс это азбука а здесь знакомство с ардуино ну а далее по нарастающей в средних классах хотелось бы увидеть уже письменность на C++ ну там и дальше.Спасибо удачных Вам проектов.

  • @АндрейХлыновский
    @АндрейХлыновский 19 днів тому

    Очень полезное видео 👍

  • @avtomatik6893
    @avtomatik6893 5 років тому

    Спокойное и познавательное видео! Класс!

  • @АлексейВоликов-е9я
    @АлексейВоликов-е9я 5 років тому

    Так держать, побольши вапускай сваи ролики очень помогают. СПОСИБА

  • @dobriychel7584
    @dobriychel7584 4 роки тому

    Хорошо подготовился. Спасибо за старание.

  • @Dimoven
    @Dimoven 4 роки тому

    Отлично объясняешь. Еще бы урок по работе и выбору осцилографа. По каким параметрам выбирать, чтобы можно было прицениться по соотношению цена/качество/функции. Ну и первичный урок как пользоваться и как не нужно подключать устройства к нему.

  • @agood9000
    @agood9000 4 роки тому

    Отличная подача учебного материала ! именно в связке millis() и прерывания ! материал можно сказать уникальный (именно в связке больше не нашёл ни у кого). Автору огромный респект !!! На хейтеров не обращай внимания они сейчас есть везде . Многие пишут просто откровенную ерунду сами не понимая что. Люди, разберитесь для начала с более простыми вещами . Сам в своё время убил уйму времени на разбор как работать с millis(). А какой резистор поставил автор и как его подтянул ... не об этом тема была =) В функции прерывания не работает delay() ибо задействован один и тот же таймер и нужно работать с millis() , а вы пишете про форму записи и прочую ерунду, он АВТОР и ОН ТАК ВИДИТ =) кому не нравится сами свой контент делайте =)

  • @Сергеймиролюбов-э6г

    Спасибо за интересное и полезное видео.

  • @PrUveTGoogl
    @PrUveTGoogl Рік тому

    Хороший обучащий канал жаль перестали выходить новые видео

  • @ФаильАйсулов
    @ФаильАйсулов 4 роки тому

    Хорошие уроки. Можно сделать еще один урок с акцентом на приоритет прерываний. Допустим собрать часы на ардуино и семисегментнике. На второй счетчик повесить часики, на первый счетчик динамическую индикацию, на нулевой счетчик опрос кнопок. Заметили что мало уроков по ардуино о том как сделать простые часы с будильником, а все потому что милис сидит на нулевом прерывании, а звук сидит на первом прерывании. Тоесть пока играет будильник, часы отстают. Пояснить что на внешнее прерывание желательно вешать только сверхсрочное, какой ни будь датчик аварии, но никак не кнопки. Ну и понятное дело, если тикают часы на таймере, глобально запрещать прерывания нельзя.

  • @tovarish-21
    @tovarish-21 6 місяців тому

    Дуже сподобалось дякую

  • @Boka-and-Joka
    @Boka-and-Joka 5 років тому

    Очень хорошие уроки. Спасибо

  • @KJIaBogaB
    @KJIaBogaB 2 роки тому

    Спасибо!!! Очень познавательно.
    Я с этим Delay проект бросил вполне рабочий, т.к. не знал как используются в Ардуино прерывания!!!
    А если мне нужно 3-5 датчиков удара подключить? Как переинициализировать всего 2 пина для прерываний на 5 пинов аналоговых ?
    Я делал интерактивный тир, где использовал библиотеки чтения SD карт и воспроизведения аудио:
    #include // Библиотека для SD Card.
    #include // Библиотека TMRpcm audio 1.6.1 ).
    При попадании по панели с приклеенным сзади пьзо-элементом воспроизводится Wav-файл звуковой.
    Настроил аналоговые А0-А4 входы как сенсоры, подключив к ним пьезоэлементы через подтягивающие резисторы каждый около 1МОм (пьезы для ударного воздействия пульки NERF).
    И в цикле это всё использовал просто проверяя условия, когда произойдет на том или ином датчике.
    После срабатывания датчика, звук мишени естественно звучит некоторое время, которое я и задавал через Delay (и ещё, толи библиотека дебильная, толи у меня лыжи не едут - если звук воспроизводился, его действие не прекращалось даже после того, как он проиграет и другой звуковой файл по другому действию не воспроизводится). Кое как нарыл в описании, что надо делать audio.disable() после выдержки времени по delay - расчитывал время звучания каждого звука):
    void loop()
    {
    int val0= analogRead(sensorPin0);
    int val1= analogRead(sensorPin1);
    int val2= analogRead(sensorPin2);
    int val3= analogRead(sensorPin3);
    int val4= analogRead(sensorPin4);
    if (val1 > 200) // попадание в тело мишени1
    {
    audio.play("hit1.wav"); // издаём истошные звуки погибели первой мишени
    delay(3000);
    audio.disable(); // выключить таймер на выводе и остановить воспроизведение
    }
    if (val2 > 200) // попадание в тело мишени2
    {
    audio.play("hit2.wav"); // издаём истошные звуки погибели второй мишени
    delay(3000);
    audio.disable(); // выключить таймер на выводе и остановить воспроизведение
    }
    // и т.д. по остальные 3 мишеням
    }
    Дак вот, во время работы по второй мишени после попадания в первую - вторая мишень не срабатывала именно из-за Delay по воспроизведению звука по первой :( приходится долго ждать пока она пробубнит свою траурную бубню. Возможно ещё и срабатывал "дребезг" контактов, т.к. пьезо полюбому должен дребежжать :)
    Потом я искал как это обойти, понял что нужны прерывания - но к тому времени не нашел подобное видео и забросил.
    Сейчас можно продолжать :) Спасибо!
    А то сын поиграл и всё понравилось, но мне не понравилось такая работа и я разобрал дальше ковырять - в результате забросил.

  • @Dimoven
    @Dimoven 4 роки тому

    Для обучалки все ок. Хорошо бы в обучении обращать внимание на переполнение таймера. Скажем, если кто-то делает для себя девайс с долгим включением, то через 70 дней пользователь получит мертвый функционал. И также если значение разницы выходит за int 32768, то на конце числа нужно ставить латинскую Л нижнего регистра, обозначающую сравнение в long

  • @ОлегХристофор-р5ж
    @ОлегХристофор-р5ж 4 роки тому

    Спасибо, очень полезно.

  • @vpetevotov
    @vpetevotov 5 років тому +1

    Под timerPrew имелось в виду previous timer?)

  • @Nikita_Pro89
    @Nikita_Pro89 3 роки тому

    Круто 👍

  • @alekskapitonov2738
    @alekskapitonov2738 Рік тому

    Спасибо.

  • @andreiserov5525
    @andreiserov5525 4 роки тому +1

    Зачем подключать подтягивающий резистор внешне, если можно использовать внутренний подтягивающий резистор функцией pinMode(1, INPUT_PULLUP)?

    • @MrYurAlex
      @MrYurAlex 3 роки тому

      Это правила "хорошего тона" для схемотехников.

  • @viktormezler3938
    @viktormezler3938 4 роки тому

    17:59 Если countOn, можно было сбросить вместе с countInterrupt, то зачем нужна вся это возня с таймером?
    Дребезг длится где-то 5мс.

    • @rogo7330
      @rogo7330 4 роки тому +1

      Если я правильно понял, вы предлагаете сделать следующее:
      ...
      void button() {
      if(countOn == 0) {
      countIpt++;
      countOn = 1;
      } } ...
      void loop() { ...
      cli()
      int countButton = countIpt;
      countIpt = 0; countOn = 0;
      sei()
      ... }
      Впринципе это может сработать, но тогда вы привязываете сброс кнопки к скорости, с которой у вас будет повторяться этот сброс. Если loop будет повторяться достаточно часто (например если убрать из этой программы delay), то переменная countOn будет сбрасываться всё ещё чаще, чем надо. Даже чаще 5 мс.

    • @Fil0sOFF
      @Fil0sOFF 2 роки тому

      Дребезг длится не 5мс) чаще всего надо ставить 50мс, но есть и такие хреновые кнопки которым и 200мс мало.

    • @viktormezler3938
      @viktormezler3938 2 роки тому

      @@Fil0sOFF
      Странно у меня не больше 10 мс. Ну а с 200мс это уже перебор! Там не кнопка дребезжит, а руки трясутся!
      🤣🤣

  • @feoktant
    @feoktant 3 роки тому

    Какие есть рекомендации - прерывание, или опрос в loop?

  • @АндрейЛенин-п2у
    @АндрейЛенин-п2у 3 роки тому

    на сколько функция attachinterrupt медленнее, чем настройка таймеров регистрами

  • @alexandr_84
    @alexandr_84 5 років тому +2

    👍

  • @НиколайКапитан-ф8л

    спасибо

  • @ОлегТопчий-у2у
    @ОлегТопчий-у2у 3 роки тому

    Добрый день.
    Подскажите пожалуйста решение задачи.
    Esp8266 подключается к локальной сети, проверяет PING устройства в сети, когда не получает ответ ЭХО , перепроверяет еща 3 раза, и если ответа нет, передергивает питание.
    Но в это же время веб страница с возможностью в ручную вкл/выкл. Реле.... кончно жэ тормозит.
    Подскажите как можно решить эту проблему?

  • @beenmayer7700
    @beenmayer7700 3 роки тому

    Здравствуйте. Подскажите пожалуйста как сделать прерывания больше чем с двумя кнопками в моем случае надо 4 кнопки?

  • @АндрійПрокопович-х6х

    Извините я читал что функции времени таких как millis, delay, micros не работают в обработчике прерываний.

    • @ГеннадийГром-в8ю
      @ГеннадийГром-в8ю 2 роки тому +1

      Немного не так! 😲 millis и micros ничего *особенного* не делают, они лишь выдают значение счётчиков в мс и мкс, прошедшее с начала работы МК, вот только во время работы подпрограммы прерывания счётчик-то не будут изменяться! 😳 И delay тоже будет работать, но какбэ необычно... Он может подвесить МК «навсегда» так как, опять же, счётчик времени у нас не меняется... 🤔 И вообще делать что-то долговременное в обработчике прерываний - это тяжкий моветон! Основная задача там - взвести какой-нить флаг, что бы основная программа узнала - у нас произошло какое-то событие, и уже там производить всякие долговременные «операции», иначе логика работы проца и остальной периферии может основательно покоситься и мы можем получить совсем не тот результат, на который рассчитывали! В начале своего «програмно/аппаратного пути» я долго не мог понять, почему моя прога делает совсем не то, что я «замыслил»?!? 🤔 И лишь доскональное заучивание мануала, да ещё пошаговая «пробежка» в отладчике «вправляли» моск на своё законное место! 👍😁🤪

    • @micromaster4405
      @micromaster4405 Рік тому

      @@ГеннадийГром-в8ю во первых, с чего бы в прерывании не работали функции времени? Во вторых, выполнение основного кода в прерывании - стандарт для систем жёсткого реального времени, особенно в тех МК, где есть приоритеты прерываний

    • @ГеннадийГром-в8ю
      @ГеннадийГром-в8ю Рік тому

      @@micromaster4405 Во первых, а с чего им там работать, если в п/п обработки каких-то прерываний обычно выставляется флаг запрета прерываний! Каждая статья в эту тему, да и все, скажем так, гуру от Ардуины на каждом шагу говорят - функции времени в прерывании не работают! Об этом уже столько баталий было, столько копий переломано в сражениях, типа: «а почему у меня в прерывании не работает то-то и это?»! А, во вторых, в *Ардуине стоит ATmega328* , и мы щаз, какбэ, про него говорим... В других МК, да и неМК тоже, может быть всё по другому! Поэтому, я ещё раз повторюсь, что только «заучивание наизусть» руководства пользователя по программированию позволит получить от МК именно той реакции, которую мы «задумали», вернее «заставить» делать то, что мы хотим! Тщательно читаем и «запоминаем» все доки и маны от «нашего» МК, чтобы не было потом «дурацких» вопросов: - а почему это моя Ардуинка считает неправильно, не видит кнопки, таймер не обрабатывает, АЦП не считает?! Вы вот зайдите на профильные форумы по STM32, там такие вопросы всплывают, что мама не горюй, а всё из-за того, что кто-то что-то не дочитал, а маны там в разы больше чем по Ардуне, или разработчики не подправили доки или софт по разработке, при выпуске новой версии МК! И да, что такое «выполнение основного кода в прерывании» я не понял, от слова - никак! 🤔 Это что, выполнение двух разных команд, в одно и то же время, одним ядром процессора?! 😲

  • @ManOleg38
    @ManOleg38 4 роки тому

    Артикул лампы на струбцине скажи пожалуйста.

    • @LabRazum
      @LabRazum  4 роки тому

      Покупал у местного магазина здесь: danomsk.ru/shop/12-gotovye-izdeliya/22-payalnoe-oborudovanie/141-vspomogatelnoe-oborudovanie/163560-lupa-nastolnaya-ma-1503i-3d-s-podsvetkoy-kh1-75-190kh155-mm-dve-energosberegyushchie-lampy-moshchnos/

  • @reodos3
    @reodos3 5 років тому +1

    Зачем подтягивающий резистор, если у ардуино есть встроенный резистор?

    • @LabRazum
      @LabRazum  5 років тому +2

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

    • @LabRazum
      @LabRazum  5 років тому +1

      @@zhuk462 ну дак вы подтверждайте доказательствами, что это ерунда :) Например, здесь в разделе о подключении кнопок об этом тоже говорят: easyelectronics.ru/podklyuchenie-mikrokontrollera-likbez.html
      и здесь тоже: www.radiokot.ru/forum/viewtopic.php?p=1431616

    • @СерегаБуба-ж3ц
      @СерегаБуба-ж3ц 5 років тому +3

      @@zhuk462 как только понимаешь, что ляпнул "ерунду" начинаешь переобувается на ходу)))) тебе же автор ясно и понятно объяснил, что предпочитает надежность, а ты флудить начинаешь и тут же говоришь о предпочтениях. Если не нравиться не грузи автора глупостями у него не так много времени чтобы тратить его на таких как ты.

    • @СерегаБуба-ж3ц
      @СерегаБуба-ж3ц 5 років тому +3

      @@zhuk462 что значит "спалиш порт что так что эдак"? Если в твоей схеме резистор подобран соответствующего номинала как же ты порт спалиш))) или опять переобуваться будешь на ходу)))

    • @Unregistered33
      @Unregistered33 5 років тому +3

      @@СерегаБуба-ж3ц тоже заметил))) крутится как уж на сковородке. сначала шлепнет языком, потом оправдывается. и дизлайк единственный он и поставил )))

  • @borysg7090
    @borysg7090 5 років тому

    Спасибо

  • @Pasha4ur
    @Pasha4ur 3 роки тому

    Плохая обработка дребезка. Если много кликать, то работа кода по включению и выключению LED по CHANGE периодически инвертируется.
    31 led13State: 1
    32 led13State: 0
    33 led13State: 1
    34 led13State: 0
    34 led13State: 0
    35 led13State: 1
    35 led13State: 1

  • @МастерКаратель
    @МастерКаратель 5 років тому

    Не пойму, почему millis - timerPrew всегда точно будет больше 200 через 200мс, а если в момент включения прерывания в миллис набежало уже много часов? Или при срабатывании прерывания миллис начинает тикать с нуля?

  • @Денис-д3м1о
    @Денис-д3м1о 3 роки тому +1

    Какой смысл писать если вы ни кому не отвечаете

  • @КлайвСинклер-е6ю
    @КлайвСинклер-е6ю 3 роки тому

    Если резистор ставят для поддтяжки к минусу его называют "стягивающим"

  • @spin3602
    @spin3602 3 роки тому

    Спасибо, много чего узнал о прерываниях, но столкнулся с проблемкой, помогите её решить, думаю много кому поможет. В проекте есть кнопка (на внешнее прерывание), модуль приёмника 433мгц (на внешнее прерывание), шаговый двигатель с драйвером DIR-STEP и другие датчики для опроса, желательно на внешнее прерывание. Как решить такую задачу, на что смотреть для написания скетча? Ведь у NANO только 2 и 3 нога для прерывания. Только ардуино UNO в помощь? или есть библиотеки какие. Жаль нет видео отличия int от pcint

    • @LabRazum
      @LabRazum  3 роки тому

      Я бы задействовал дополнительные пины для каждого датчика, и так же направил бы их на один пин прерывания. То есть прерывание на 3 пине регистрируется и обработчик начинает проверять три пина датчиков, которые выдают сигнал. Вот нашёл подобное обсуждение (goo-gl.me/4jiNM ), почитайте, может будет полезным. А вообще я бы не увлекался прерываниями и старался делать быструю программу, в цикле которой успевают отслеживаться все ваши события.

    • @spin3602
      @spin3602 3 роки тому

      @@LabRazum Спасибо, я тут почитал чем отличается PCINT* от INT* на ногах, получается как у Вас на видео графики, INT на 2 и 3 ноге, остальные подчти все грубо на кнопки можно сажать для прерывания. Неувлекаясь конечно же.

  • @ВалентинВладимирович-й4х

    Добрый день или вечер!!! Уважаемый, Вы можете в другом скетче, доработать еще два канала, ролики Ваши просто чудо, но программирование для меня пенсионера очень сложно, спаять схему нет проблем. Заранее спасибо.

  • @MrHazur
    @MrHazur 5 років тому +1

    Слишком много переменных. Не проще по прерыванию отключить само прерывание, и через n мелисикунд снова опросить кнопку? Если на кнопке логический 0 - включить заново прерывание.

  • @3DSpaceX
    @3DSpaceX 5 років тому

    Здравствуйте, подскажите а как сделать что бы после нажатия кнопки светодиод загорался с нужной мне задержкой ну допустим с опаданием в 1.5сек? но при отпускании что б срабатывало без задержек уже.

    • @grieschagriegorjev3453
      @grieschagriegorjev3453 5 років тому +1

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

  • @drollery6399
    @drollery6399 3 роки тому +1

    То есть прошло 1.5 месяца и прерывания перестали работать :-) Хакер? Для МК 1.5 месяца, как мгновение, особенно если он в каком-нибудь девайсе с постоянным питанием.

  • @СашкаБелый-ч6м
    @СашкаБелый-ч6м 2 роки тому

    Ну и почему под роликом нет ссылки на первое видео про прерывания, раз уж его рекомендуете. Несерьёзно относитесь к своей работе :(

    • @LabRazum
      @LabRazum  2 роки тому

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

    • @СашкаБелый-ч6м
      @СашкаБелый-ч6м 2 роки тому

      @@LabRazum Ура, в этот раз я смогу вам кое что интересное и новое рассказать! :) То что вы назвали «подсказки/рекомендованные видео» можно увидеть только на стационарном компьютере, и то только в том случае если у вас в настройке включена опция «Аннотации». И в этом случае подсказка выскочит лишь на секунду. Стоило тебе отвернуться и ты уже не знаешь о том что там что-то было. А если опция «Аннотации» выключена - то я и не узнаю что были какие-то подсказки. Но я смотрю ютьюб с планшета iPad (он рекламу только 1 раз показывает перед видео, а не каждые 5-7 минут как на стационарном компе), и там в мобильной версии вообще никогда не выпадают подсказки, а в настройках даже раздела «Аннотации» не усуществует. В общем ни пользователи компьютеров, ни планшетов/смартфонов ваши подсказки не видят (за исключением тех кто включит эту опцию на ПК). Гораздо логичней если вы на что-то ссылаетесь - прописать это в ссылках под видео, как это делают все остальные...

    • @LabRazum
      @LabRazum  2 роки тому

      @@СашкаБелый-ч6м хорошо, спасибо, буду прописывать! Есть еще раздел «другие видео», если нажать на шестеренку, в самом низу. Там я обычно смотрю все предложенные видео автором. Это и с ipad и с телефона работает.

  • @Drak0sha13
    @Drak0sha13 Рік тому

    Или автор дает очень упрощённое понятие volatile, или сам не до конца понимает его использование. Например, если переменная используется только в прерывании, то volatile не нужно ставить.

  • @Relevantium
    @Relevantium 3 роки тому

    Спасибо понятно, но проще было бы INPUT PULLUP или же резистором вручную подтянуть и дребезг уйдет

    • @LabRazum
      @LabRazum  3 роки тому +1

      Нет, дребезг останется, т.к. происходит он из-за контактов, которые несколько раз замыкаются между собой. А подтяжка всего лишь делает стабильным 0 или 1 - нажато/отпущено, без помех.

    • @Relevantium
      @Relevantium 3 роки тому

      @@LabRazum все этим пользуются, а вы пытаетесь опровергнуть, говорю же работает

    • @LabRazum
      @LabRazum  3 роки тому +1

      @@Relevantium я с такой логикой спорить не буду, но вы бы хоть загуглили для чего нужна подтяжка :)

    • @Relevantium
      @Relevantium 3 роки тому

      @@LabRazum я знаю для чего она нужна, но с дребезгом тоже помогает, иначе бы не советовал

    • @LabRazum
      @LabRazum  3 роки тому +1

      @@Relevantium если вы так настаиваете, тогда можете коротко пояснить, как это происходит? Или дать ссылку хоть на одну статью или пример где об этом рассказано?)

  • @criterrors
    @criterrors 3 роки тому

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

  • @АндрейКулешов-у9п
    @АндрейКулешов-у9п 4 роки тому

    А можешь конечно не бесплатно проверить скетч.

  • @argielu6524
    @argielu6524 5 років тому

    +