I am having some problems when I try to get data from my sensor. I can read registers and get some data but I don't know how I should do the covnersion to get a real value.
I am using an arduino and I found some libraries. Those libraries tend to use this format:
x = ((int8_t)sensorData)*256+sensorData;
y = ((int8_t)sensorData)*256+sensorData;
z = ((int8_t)sensorData)*256+sensorData;
Where position 0 of sensorData starts at OUT_X_L (28h) and goes up.
Is this right? I have read something about left justified of LSB and I think it should be like:
Is it the same?
Apart from that, they use a formula to get mg values from the x,y and z values:
x = (int32_t)x*1000/(1024*mgScaleVel); //transform data to millig, for 2g scale axis*1000/(1024*16),
y = (int32_t)y*1000/(1024*mgScaleVel); //for 4g scale axis*1000/(1024*8),
z = (int32_t)z*1000/(1024*mgScaleVel); //for 8g scale axis*1000/(1024*4)
What is this about? where does this formula appear? Is it correct? How should I parse the data?