LIS3DSH question and documentation request
I've been able to get the LIS3DSH working for single values by doing this:
transmitData[0] = (uint8_t) (LIS3DSH_READ | LIS3DSH_X_L);
SPISend( transmitData, receiveData, 2); xl = receiveData[1];But if I wanted to read out multiple values in one transaction, I'd expect that I could do something like:
transmitData[0] = (uint8_t) (LIS3DSH_READ | LIS3DSH_MULTIPLE | LIS3DSH_X_L);
transmitData[1] = (uint8_t) (LIS3DSH_READ | LIS3DSH_X_L); SPISend( transmitData, receiveData, 3); xl = receiveData[1]; xh = receiveData[2];Or have byte 2 just be 0xFF because the auto-increment would do what I expected.
But alas, it doesn't work. (yes address increment is turned on in register 6)
Can this be done? What am I missing?
Now for documentation, the temperature register just isn't documented in the data sheet. It took a while to figure out that it is Celcius and biased by -25C. Also, the M/S bit isn't documented either. I found AN3393 to be very useful, the data sheet, not so much.
Thanks,
Andrei from The Great White North.
