Доброго времени суток. Кусок кода должен, по логике, включать и выключать светодиод определённое количество раз. Заметил, что 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);
Установите вызов функции включения/выключения по таймауту. https://www.espruino.com/Reference#l__global_setTimeout
Допилил. Завёл на кнопку, разобрался с функциями. Дичайше крутое ощущение, когда ты понял, как оно работает. Вдруг кому нужно - пользуйтесь) Код (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);