Sleep или wait в Искре

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Heretique, 22 янв 2017.

  1. Heretique

    Heretique Нерд

    Доброго времени суток.

    Кусок кода должен, по логике, включать и выключать светодиод определённое количество раз.
    Заметил, что console.log выводит все значения корректно, но вот из-за скорости обработки успевает лишь на долю секунды моргнуть индикатором.
    Подскажите, куда копать, и есть ли аналог команды sleep или wait в Искре.
    Гугление по JS дало несколько тем с костылями, но, кмк, для аппаратной части обычно предусматривают некую возможность для отладки.

    Или у меня фундаментальная ошибка?


    Код (Javascript):
    while (i < rndm)
      {
      led.blink(1, 1);
      i++;
      console.log("test: " + i);
      }
    led.turnOff();
    console.log("test-final: " + i);
     
  2. mcureenab

    mcureenab Гуру

  3. Heretique

    Heretique Нерд

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

    Код (Javascript):

    var led = require('@amperka/led').connect(P7);
    var button = require('@amperka/button').connect(P1);

    var min = 1;
    var max = 6;
    var i = 0;

    //var rndm = Math.floor((Math.random() * (max - min)) + min);

    var rndm;



      function random() {
      rndm = Math.floor((Math.random() * (max - min)) + min);
      }



    console.log("test_run: " + rndm);

      function anusZapekanus_1(n) {
      led.turnOn();
      setTimeout(anusZapekanus_2, 500, n);
    }


    function anusZapekanus_2(n) {
      led.turnOff();
      n--;
      if (n > 0) {
        setTimeout(anusZapekanus_1, 500, n);
      }
    }

    button.on('press', function() {
      random();
      anusZapekanus_1(rndm);
      console.log("test_func: " + rndm);
    });
    //anusZapekanus_1(rndm);
    console.log("test-final: " + i);
     
     
    Последнее редактирование: 23 янв 2017
    Belonenko, Protos911, arkadyf и ещё 1-му нравится это.