I looked at the C code of the two versions 1v41 and 1v51.
Everything seems oK.
However, you now manage the SPI port using an interrupt and putting the data into a buffer before returning to the Javascript caller code.
May it be that
either
the interrupt is not generated ? ( Even NVIC structure seems programmed OK )
or
data is put in a wrong way or position into the 4 byte buffers ?
( conversion from unsigned char to int. !!! )
May it be that something the Head and Tail pointers disagree and some garbage is returned back… ?
Another difference with respect the 1v41 version is that now before sending data you do not flush the receiving SPI shift register to disregard eventual garbage.
I was not able to see any errors, but it is evident that something must now go wrong .
The ultimate solution is to DEBUG at C code level, the differences among the versions 1v41 and 1v51 being now known.
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.
I looked at the C code of the two versions 1v41 and 1v51.
Everything seems oK.
However, you now manage the SPI port using an interrupt and putting the data into a buffer before returning to the Javascript caller code.
May it be that
either
the interrupt is not generated ? ( Even NVIC structure seems programmed OK )
or
data is put in a wrong way or position into the 4 byte buffers ?
( conversion from unsigned char to int. !!! )
May it be that something the Head and Tail pointers disagree and some garbage is returned back… ?
Another difference with respect the 1v41 version is that now before sending data you do not flush the receiving SPI shift register to disregard eventual garbage.
I was not able to see any errors, but it is evident that something must now go wrong .
The ultimate solution is to DEBUG at C code level, the differences among the versions 1v41 and 1v51 being now known.