Помогите разобраться в ошибке

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем MihlanDOta, 23 мар 2020.

  1. MihlanDOta

    MihlanDOta Нуб

    Добрый день! Я собрал небольшой проект с использованием УЗ датчика расстояния. Так же в нём есть кнопка, которая останавливает измерение, а при повторном нажатии возобновляет его.
    Но иногда, когда я нажимаю на кнопку, что бы опять включить измерение, датчик расстояния как бешеный делает слишком много измерений за секунду, а в консоли выходит такая ошибка:
    ERROR: Ctrl-C while processing interval - removing it.
    Execution Interrupted during event processing.
    Uncaught Error: Unknown Watch
    at line 1 col 240
    ...e._echoPin,{edge:"falling"})
    ^
    in function called from system
    at line 1 col 12
    mmm = value.toFixed(0);
    ^
    in function "" called in function "ping" called from line 4 col 8
    }, 'cm');
    ^
    in function called from system
    at line 1 col 160
    ...l,clearWatch(e._fallWatchID),e._fallWatchID=null,t(new Error...
    ^
    in function called from system
    New interpreter error: CALLBACK,MEMORY

    Я уже не знаю, что делать. Помогите пожалуйста!
    Датчик делает измерение раз в 100 миллисекунд
     
  2. Vitaliy-Sh

    Vitaliy-Sh Нерд

    Я заметил, что кнопки по умолчанию часто имеют дребезг. Надо поднастроить debounce. Подробнее тут http://wiki.amperka.ru/js:button

    З.Ы. Купил кнопки со выстроенными светодиодами, сделал включение и выключение светодиода при нажатии на кнопку. Таки дребезг жуткий, если оставить все по умолчанию. Думал даже брак какой-то, т.к. у одной он больше, чем у другой.

    Вот скрипт для настройки кнопки

    Код (Javascript):
    var myButton = require('@amperka/button')
      .connect(P3, {
        debounce: 50
      });

    var myLed = require('@amperka/led').connect(P13);

    myButton.on('press', function() {
      console.log("Press");
      myLed.toggle();
    });
     
    Последнее редактирование: 23 мар 2020
    parovoZZ нравится это.