Hello,
I am trying to port Arduino C code to Puck.JS JavaScript
and I think I have potential timing issue with use of setWatch on clock PIN
to read data from data PIN similar to code below.
Is it possible to find optimal solution to interpret my input PINs
even with setWatch callback?
I do not get consistent results reading the data and I am worried that
only solution would be to have native code handling it?
What I try to do - storing each data bit on clock edge to array (to be interpreted later)
var req = 31; //mic REQ
var dat = 1; //mic Data line
var clk = 2; //mic Clock line
var i = 0;
var a=[];
pinMode(clk, 'input_pullup');
pinMode(dat, 'input_pullup');
pinMode(clk, 'input_pullup');
setWatch(function () {
b = digitalRead(dat);
if (i < 52) {
a.push(b);
i++;
}
}, clk, {
edge: "rising",
debounce: 0,
repeat: true
});
Arduino code was similar to
Arduino is using loop driven by CLK pin vs. Espruino based on JavaScript callback with set Watch for CLK edge...
My HW is Puck.JS.
void loop()
{
digitalWrite(req, HIGH); // generate set request
for (i = 0; i < 13; i++)
{
k = 0;
for (j = 0; j < 4; j++)
{
while (digitalRead(clk) == LOW) {}
while (digitalRead(clk) == HIGH) {}
bitWrite(k, j, (digitalRead(dat) & 0x1)); // read data bits, and reverse order )
}
mydata[i] = k;
}
...
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Hello,
I am trying to port Arduino C code to Puck.JS JavaScript
and I think I have potential timing issue with use of setWatch on clock PIN
to read data from data PIN similar to code below.
Is it possible to find optimal solution to interpret my input PINs
even with setWatch callback?
I do not get consistent results reading the data and I am worried that
only solution would be to have native code handling it?
What I try to do - storing each data bit on clock edge to array (to be interpreted later)
Arduino code was similar to
Arduino is using loop driven by CLK pin vs. Espruino based on JavaScript callback with set Watch for CLK edge...
My HW is Puck.JS.