WiFi Slot из коробки прошит Espruino. Но хвалёные 8 каналов АЦП на нём не работали. Я тут пару дней потратил на то, чтобы победить АЦП, делюсь наработками. Код (Javascript): const SDA = D2; const SCL = D0; const PA0 = D3; const PA1 = D1; const PA2 = D16; const PA3 = D13; const PA4 = D5; const PA5 = D14; const PA6 = D4; const PA7 = D12; const analog_pin_to_mux_channel = new Uint8Array([ 0xff // 0 , 1 // 1 , 0xff // 2 , 0 // 3 , 6 // 4 , 4 // 5 , 0xff // 6 , 0xff // 7 , 0xff // 8 , 0xff // 9 , 0xff // 10 , 0xff // 11 , 7 // 12 , 3 // 13 , 5 // 14 , 0xff // 15 , 2 // 16 ]); var analog = { currentAin: 0, ainHW: 17, aInSelectorPin: 15, read: function(pin){ if (pin >= this.ainHW) { return 0; } var ain = analog_pin_to_mux_channel[pin.getInfo().num]; if (ain === 0xff) { return 0; } pinMode(pin, "input"); var i; var a = this.aInSelectorPin; var arr = []; if (this.currentAin > ain) { for (i = 0; i < (8 - this.currentAin); ++i) { arr.push(10); } this.currentAin = 0; } for (i = this.currentAin; i < ain; ++i) { arr.push(10); } shiftOut(D15, {repeat:5}, arr); this.currentAin = ain; return analogRead(A0); }, reset: function(){ pinMode(this.aInSelectorPin, "output"); digitalPulse(this.aInSelectorPin,1,[1]); analog.currentAin = 0; } }; E.on('init', function() { analog.reset(); }); ////USE ANALOG READ setInterval(function () { console.log(analog.read(PA6)); console.log(analog.read(PA2)); console.log(analog.read(PA4)); console.log(analog.read(PA5)); }, 500); С этим кодом АЦП заработал. Основная проблема была в том, что у меня не получалось достаточно быстро изменять состояние ножки D15, которая управляет мультиплексором АЦП. Если очень долго (~200 мкс) держать эту ногу в лог. 1, то мультиплексор сбрасывается на А0. Стандартный Код (Javascript): digitalWrite(D15, true);digitalWrite(D15, false); не успевал. В итоге справился магией. Код (Javascript): shiftOut(D15, {repeat:5}, [10]); - вот эта магия способна дать вот тот необходимый быстрый переход _/\_/\_ лог уровня. Магия в том, что 10 это 1010 в двоичной системе. Упд. В аттаче espruino v2.01 под WiFi Slot
Так в итоге скорость переключения каналов в мультиплексоре какая? AVR-кам похвастаться не чем - 1-1.5 мс всего лишь.